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套件不能连接手机问题。
到控制面板/添加删除程序下可以看到三个相关的程序。

将驱动删除掉(手机不能连接),然后将管理连接和诺基亚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% [?]

Random Posts

← Previous Page