在Vista系统上搭建Symbian开发环境的实践

http://tech.ddvip.com   2008年09月08日    社区交流

内容摘要:大家都很清楚,Symbian并不是一个很容易安装的开发环境,最近我将OS换成Vista以后,又遇到了前所未有的麻烦。折腾了一个晚上总算是跑通了,下面把过程总结一下,希望下回重装系统时不用太费劲了。

  大家都很清楚,Symbian并不是一个很容易安装的开发环境,最近我将OS换成Vista以后,又遇到了前所未有的麻烦。折腾了一个晚上总算是跑通了,下面把过程总结一下,希望下回重装系统时不用太费劲了。

  第一步,按网上的资料安装所需的软件,要注意两个方面:

  一是版本别弄错了,如下:

  JDK 1.6.0_04 (jdk-6u4-windows-i586-p.exe)

  Perl 5.6.1 (ActivePerl-5.6.1.638-MSWin32-x86.msi)

  然后,就是正常安装Carbide C++ v1.2即可,网上有破解版的lic可得到OEM版的功能。

  Symbian SDK就随便了,选择几个常用的主流的安装一下就可以了。

  二是安装目录一定放在C盘,否则以后很麻烦,包括以后建立的工程文件也应该放在C:Symbianworkspace里,省事,虽然这让人很不舒服。

  第二步,修改一个地方,否则模拟器不认java 1.6环境(以 S60 3rd为例)。

  打开C:Symbian9.1S60_3rdEpoc32toolsecmtconfigconfig.properties文件,修改其中一行即可:

  epdt.java.version.start=1.4.1,1.4.2,1.5,5.0,1.6,6.0

  就是在后面加上1.6,6.0让它认识一下1.6以上的JDK罢了。

  第三步,因为Vista的ACL比较严格,所以建议把CarbideIDE和模拟器都加上管理员权限运行。

  其中模拟器位置在C:Symbian9.1S60_3rdEpoc32releasewinscwudebepoc.exe而Carbide则位于C:NokiaCarbide.c++ v1.2Carbide.c++.exe,这个Carbide还得加上Xp SP2的兼容模式运行。

  至此,应该可以在Vista上顺利运行Carbide环境并生成Helloworld程序了。

  但是事情还没有完,虽然可以编译出一个运行于模拟器环境下的应用,但是我们如果想生成最终的设备上的 sis文件,即Build Target设置为GCCE模式,却发现根本编译不过去。

  究其原因,主要还是那个3rd以后带有的Arm Toolchain导致的。所以,我们还需要修改几个地方:

  首先修改环境变量,在用户变量的Path中增加对它的引用,如下:

  Path=C:Javajdk1.6.0_04bin;C:CSLArmToolchainbin;C:CSLArmToolchainarm-none-symbianelfbin;C:CSLArmToolchainlibexecgccarm-none-symbianelf3.4.3;C:Perlbin;C:ADSv1_2bin;%PATH%;

  注意这里增加几个目录,除了jdk,perl以外主要就是那几个与C:CSLArmToolchain相关的子目录了(我把CSLArmtoolchain安装在C根目录下,其实也可以放在Program Files里,不影响的)。另外,我把系统的%PATH%放到最后去了,省得麻烦。

  然后修改两个文件,其一是位于C:Symbian9.1S60_3rdtoolscompilation_config目录下的gcce.mk文件。修改第14行的代码如下:

  CC_INSTALL_PATH="C:CSLArmToolchain"

  强制指定CC的安装目录即可。

  还有第333行,这样写:

#add by sharetop
LINK_EXT_SHARETOP=-L"$(CC_INSTALL_PATH)arm-none-symbianelflib" -L"$(CC_INSTALL_PATH)libgccarm-none-symbianelf3.4.3"
# Linker option common to all link commands for UREL build
SYMBIAN_UREL_LINK_FLAGS=$(SYMBIAN_LD_MESSAGE_OPTION) $(BPABI_OPTION) $(RELOCATABLE_IMAGE_OPTION) $(TARGET_RELOCATION_OPTION) $(UNRESOLVED_SYMBOL_REF_OPTION) $(STDLIB_OPTION) $(EXTRA_LD_OPTION) $(LINK_EXT_SHARETOP)
# Linker option common to all link commands for UDEB build
SYMBIAN_UDEB_LINK_FLAGS=$(SYMBIAN_LD_MESSAGE_OPTION) $(BPABI_OPTION) $(RELOCATABLE_IMAGE_OPTION) $(TARGET_RELOCATION_OPTION) $(UNRESOLVED_SYMBOL_REF_OPTION) $(STDLIB_OPTION) $(EXTRA_LD_OPTION) $(LINK_EXT_SHARETOP)

  主要是在SYMBIAN_UDEB_LINK_FLAGS后要加上两个库,否则编译出o文件以后又无法链接成 exe文件,这两个库都在CSLArmToolchain的下面。

  然后还要修改另一个文件位于C:Symbian9.1S60_3rdEpoc32tools目录下的cl_bpabi.pm。这个很较好改,只一句话,找到函数sub GCCInstallPath,简单一点,让它直接返回固定的目录即可,在第1649行这样写:

  sub GCCInstallPath {

  return "C:CSLArmToolchainin";

  ...

  后面的代码不管了,可以留着无所谓,让它直接就返回这个目录即可。

  现在,才算是真正把环境配置完成了,再试着编译一下GCCE的Helloworld版本,它会自动签名并生成sisx文件,就可以拷到手机上运行了。

来源:SHARE & TOP    责编:豆豆技术应用

正在加载评论...