carbide.vs3.0.1链接碰到_GetUserNameA@8未找到问题解决

在Nokia的网站上下载了一个 Open C/C++ Plugins 包,为自己的空工程添加了一下对OpenC的引用。
在 MyTest.mmp 文件中添加了

SYSTEMINCLUDE                           \epoc32\include\stdapis
LIBRARY                                 libc.lib

结果编译出现问题,提示:

SL_All_MSE_Symbian_D.lib(unistd.win32.c.obj) : error LNK2019: CBDERR -- unresolved external symbol _GetUserNameA@8 referenced in function _getlogin

很奇怪的问题,使用GCCE编译没有报错,说明是WINSCW编译器问题,到Nokia论坛上找了一下,也有人碰到这个问题,有一个人回答的比较模糊,说调整一下库文件的连接顺序就好了。于是自己做尝试。

在vs 2005环境中调整libc.lib的引用顺序,在Linker配置中将原先添加

MSL_All_MSE_Symbian_D.lib
kernel32.lib
user32.lib

后面的libc.lib移动到前面,然后在C/C++配置中将

$(EPOCROOT)\epoc32\include\stdapis

放到

$(EPOCROOT)\epoc32\include

前面,变成

$(EPOCROOT)\epoc32\include\stdapis
$(EPOCROOT)\epoc32\include

再次编译,链接时 符号 _GetUserNameA@8 找不到的问题消失,使用GCCE编译还是正常。

Popularity: 4% [?]

Related

Comments

Comments are closed.