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: 7% [?]
Related
Carbide.vs3.0.1以GCCE编译工程出现RCMake.exe异常解决
用vs建立了一个Symbian的空工程,然后放到版本库中,准备作为未来研究Symbian编程的基础工程。
首先试验了一下编译环境是否正常:
首先使用 Deb_S60_30M_WINSCW 方式编译:
没有错误提示,在 开发包的 S60_3rd_MR\Epoc32\release\Winscw\UDeb 目录下可以看到生成的文件。
然后使用 Rel_S60_30M_GCCE 编译:
在编译的最后步骤 VS 出现错误,提示RCMake.exe执行出错。
查看开发包的 S60_3rd_MR\Epoc32\release\GCCE\UREL 目录,有文件生成。
再查看BuildLog.htm 发现在编译日志的最后最后有提示:
System.UnauthorizedAccessException: 对路径“D:\symbian\MyTest\sis\MyTest.pkg”的访问被拒绝。 在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 在 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) 在 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 在 System.IO.StreamWriter.CreateFile(String path, Boolean append) 在 System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) 在 System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding) 在 com.nokia.iguana.compilepackage.CompilePackage.UpdatePackageFile(String _projectKeyword, String _platformName, String _buildType, String _projectRoot, ProjectSettings settings, ProjectExtraSettings extraSettings) 在 com.nokia.iguana.tools.rcmake.TargetBuilder.runOtherPlatform() 在 com.nokia.iguana.tools.rcmake.RCMakeMain.Run() 在 com.nokia.iguana.tools.rcmake.RCMakeMain.main(String[] args)
后查证,是由于使用了版本库,文件签入后,.pkg文件只读造成的,将其签出,重新编译,没有错误。
对比了一下.pkg 文件前后变化,原先文件中的目录被实际目录路径替换。
Popularity: 7% [?]
Related
Nokia的PC Suite套件“没有可用的连接类型”问题解决
安装了Nokia的PC Suite套件,开始一切运行正常,可是某次关机在运行后,用USB线连接手机,提示没有手机连接。运行Nokia的手机连接向导,提示”没有可用的连接类型,因此无法建立到手机的连接。向导将退出。未能检测到可用连接类型!请重新安装诺基亚PC套件。“。
搞了很久(检查USB连线,检查手机连接,卸载重装Nokia的PC套件等),都没有解决问题,依旧是电脑上的PC套件检测不到手机连接。
后来尝试发现经过如下步骤可以解决PC套件不能连接手机问题。
到控制面板/添加删除程序下可以看到三个相关的程序。
- 1.诺基亚PC套件
- 2.驱动(英文 nokia connectivity cable driver)
- 3.连接管理(这个是英文名,PC CONNECTIVITY SOLUTION)
将驱动删除掉(手机不能连接),然后将管理连接和诺基亚PC套件做修复,重启机器后再次通过USB线连接手机,提示发现新硬件,安装驱动等,然后PC套件就可以正常连接手机了。
怀疑上面步骤只需要卸载掉 驱动程序,并修复 连接管理 程序,应该就可以了。
Popularity: 6% [?]
Random Posts
Nokia的Carbide.vs 3.01 不能安装问题解决
想看一下Nokia的S60开发环境,看看是否通过一些简单的操作将以前移植到PSP游戏机上面的一个程序再移植到Nokia S60第三版的手机上。
到Nokia的论坛上注册了一个账号,下载了VS.net 2005的插件Carbide.vs 3.01。
运行安装文件,首先检查需要的一些资源,按照安装过程中提示的按钮,依次下载安装了 Active Perl, S60 3rd Edition FP2 SDK, JDK后再按安装程序的Retry 按钮后,Next 按钮是仍然是灰的,总是不认安装的 S60 3rd Edition FP2 SDK。
到Nokia论坛上搜索,发现有关于安装问题讨论贴,按照提供的Wiki页面中介绍的方法,检查了自己安装的 S60 3rd Edition FP2 SDK 是 1.1 版的,于是按照 1.1 版处理,在注册表中
HKEY_LOCAL_MACHINE\SOFTWARE\Nokia\Carbide.vs.30
下添加一个字符串值
ForcePrereq=1
再次运行 Carbide.vs 3.01 安装程序,检查了一下以后,next 按钮可以点击继续下一步了安装。
到此问题解决。
附Nokia 网站上一篇Wiki 应用开发 S60 3rd Edition 文章有一些关于Nokia Symbian S60 第三版开发的一些信息。
Popularity: 6% [?]