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

阅读更多
大家都很清楚,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:\Symbian\workspace里,省事,虽然这让人很不舒服。

第二步,修改一个地方,否则模拟器不认java 1.6环境(以 S60 3rd为例)。
打开C:\Symbian\9.1\S60_3rd\Epoc32\tools\ecmt\config\config.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:\Symbian\9.1\S60_3rd\Epoc32\release\winscw\udeb\epoc.exe而Carbide则位于C:\Nokia\Carbide.c++ v1.2\Carbide.c++.exe,这个Carbide还得加上Xp SP2的兼容模式运行。

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

究其原因,主要还是那个3rd以后带有的Arm Toolchain导致的。所以,我们还需要修改几个地方:
首先修改环境变量,在用户变量的Path中增加对它的引用,如下:
Path=C:\Java\jdk1.6.0_04\bin;C:\CSLArmToolchain\bin;C:\CSLArmToolchain\arm-none-symbianelf\bin;C:\CSLArmToolchain\libexec\gcc\arm-none-symbianelf\3.4.3;C:\Perl\bin;C:\ADSv1_2\bin;%PATH%;
注意这里增加几个目录,除了jdk,perl以外主要就是那几个与C:\CSLArmToolchain相关的子目录了(我把CSLArmtoolchain安装在C根目录下,其实也可以放在Program Files里,不影响的)。另外,我把系统的%PATH%放到最后去了,省得麻烦。

然后修改两个文件,其一是位于C:\Symbian\9.1\S60_3rd\tools\compilation_config目录下的gcce.mk文件。修改第14行的代码如下:
CC_INSTALL_PATH="C:\CSLArmToolchain"
强制指定CC的安装目录即可。
还有第333行,这样写:
#add by sharetop
LINK_EXT_SHARETOP=-L"$(CC_INSTALL_PATH)\arm-none-symbianelf\lib" -L"$(CC_INSTALL_PATH)\lib\gcc\arm-none-symbianelf\3.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:\Symbian\9.1\S60_3rd\Epoc32\tools目录下的cl_bpabi.pm。这个很较好改,只一句话,找到函数sub GCCInstallPath,简单一点,让它直接返回固定的目录即可,在第1649行这样写:
sub GCCInstallPath {
return "C:\\CSLArmToolchain\\bin";
...
后面的代码不管了,可以留着无所谓,让它直接就返回这个目录即可。

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


你可能感兴趣的:(Symbian,C#,C,C++,EXT)