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% [?]