您的位置:首页 > 其它

Symbian软件开发(1):开发平台的搭建

2007-10-21 12:15 330 查看
参考了网上的一些文章,Symbian软件中S60开发平台搭建非常顺利地完成了!
我的安装顺序是:
(1)jre1.5.0_02
(2)ActivePerl-5.6.1.638(一时没有找到5.6.1.635,就安装了5.6.1.638)
(3)Carbide.c++ 1.2
(4)S60 3rd Edition, FP1
根据Carbide.c++的Help中的tutorials,顺利完成了HelloWorld的例子并能正常运行。有几点需要注意:
(1)在IDE中运行例子,S60的仿真机出现后,并没有自动运行例子程序,需要到Installation目录中找到例子,再运行。
(2)可以通过/S60 Developer Tools/3rd Edition FP1 SDK/1.0/Languages/Change to Chinese,把仿真器的界面从英语改成中文。
其实对应的命令如下:
Change to Chinese
目标:
"C:/Program Files/Java/jre1.5.0_02/bin/javaw.exe" -classpath unzip.jar;plugins/general.jar;lib/log4j-1.2.8.jar -Dsource=language -Ddestination=../../.. -Dlanguage=zh_cn -Dplatform=winscw com.nokia.epdt.zip.ZipManager
起始位置:
D:/Symbian/9.2/S60_3rd_FP1/Epoc32/tools/ecmt/

Change to English
目标:
"C:/Program Files/Java/jre1.5.0_02/bin/javaw.exe" -classpath unzip.jar;plugins/general.jar;lib/log4j-1.2.8.jar -Dsource=language -Ddestination=../../.. -Dlanguage=en_us -Dplatform=winscw com.nokia.epdt.zip.ZipManager
起始位置:
D:/Symbian/9.2/S60_3rd_FP1/Epoc32/tools/ecmt/

试用了两天,发现Symbian的C++开发比我想象的复杂,需要学习很多新知识。

一时兴起,想同时再安装一个UIQ 3.1的SDK,不想出现的问题。
安装UIQ 3.1的SDK时,检测到我安装了ActivePerl-5.6.1.638,告诉我最好安装ActivePerl-5.6.1.635。考虑到UIQ 3.1的SDK就带了ActivePerl-5.6.1.635,以及网上说最好使用ActivePerl-5.6.1.635,其他版本可能有兼容问题,就决定还是换成ActivePerl-5.6.1.635比较好。
(1)卸载ActivePerl-5.6.1.638卸载后,安装ActivePerl-5.6.1.635。
(2)安装UIQ 3.1的SDK。
(3)打开Carbide.c++ 1.2,创建一个UIQ 3.1的例子,但是无法build成功。总是出现错误:

***Generating makefiles.
C:/WINDOWS/system32/cmd.exe /c bldmake bldfiles WINSCW UDEB
EPOCROOT environment variable must be capitalised
BEGIN failed--compilation aborted at D:/Symbian/UIQ3.1SDK/epoc32/tools//E32env.pm line 52.
Compilation failed in require at D:/Symbian/UIQ3.1SDK/epoc32/tools/bldmake.pl line 28.
BEGIN failed--compilation aborted at D:/Symbian/UIQ3.1SDK/epoc32/tools/bldmake.pl line 28.

Total Time: 0 sec
===Build Command = /c abld build WINSCW UDEB -v===
C:/WINDOWS/system32/cmd.exe /c abld build WINSCW UDEB -v
'abld' 2?ê??ú2??òía2??üá?£?ò22?ê??é??DDμ?3ìDò
?ò?ú′|àí???t?£
***build returned with exit value = 1
***Stopping. Check the Problems view or Console output for errors.

(4)打开原来的S60的例子,也无法build成功。总是出现错误:

***Generating makefiles.
C:/WINDOWS/system32/cmd.exe /c bldmake bldfiles WINSCW UDEB
EPOCROOT environment variable must be capitalised
BEGIN failed--compilation aborted at D:/Symbian/9.2/S60_3rd_FP1/epoc32/tools//E32env.pm line 52.
Compilation failed in require at D:/Symbian/9.2/S60_3rd_FP1/epoc32/tools/bldmake.pl line 28.
BEGIN failed--compilation aborted at D:/Symbian/9.2/S60_3rd_FP1/epoc32/tools/bldmake.pl line 28.

Total Time: 4 sec
===Build Command = /c abld build WINSCW UDEB -v===
C:/WINDOWS/system32/cmd.exe /c abld build WINSCW UDEB -v
'abld' 2?ê??ú2??òía2??üá?£?ò22?ê??é??DDμ?3ìDò
?ò?ú′|àí???t?£
***build returned with exit value = 1
***Stopping. Check the Problems view or Console output for errors.

以为是安装顺序出现问题,把所有的卸载后,按以下顺序安装,仍然出前面的错误。
(1)ActivePerl-5.6.1.635
(2)S60 3rd Edition, FP1
(3)Carbide.c++ 1.2

以为是ActivePerl版本问题,准备换回ActivePerl-5.6.1.638,把所有的卸载后,按以下顺序安装,仍然出前面的错误。
(1)ActivePerl-5.6.1.638
(2)S60 3rd Edition, FP1
(3)Carbide.c++ 1.2

以为是未按缺省路径安装问题,准备全部按缺省路径安装到C盘,把所有的卸载后,按以下顺序安装,仍然出前面的错误。
(1)ActivePerl-5.6.1.635
(2)S60 3rd Edition, FP1
(3)Carbide.c++ 1.2

晕,再做了一次试验,把所有的卸载后,手工清除了系统注册表中的有关项,按以下顺序安装,仍然出前面的错误。
(1)ActivePerl-5.6.1.635
(2)S60 3rd Edition, FP1
(3)Carbide.c++ 1.2

彻底晕到,另外找了一台没有安装过ActivePerl+S60 SDk+Carbide.c++的机器,按以下顺序安装,一次成功,没有任何问题。
(1)jre1.5.0_02
(2)ActivePerl-5.6.1.635
(3)Carbide.c++ 1.2
(4)S60 3rd Edition, FP1 SDK
(5)UIQ 3.1 SDK
(6)S80_DP2_0_SDK_CW SDK

由此可见,安装顺序和软件的兼容性没有问题,有问题可能就是路径配置和系统变量的差异了。

详细比对了两台机器的路径配置和系统变量,没有找出问题的原因。

最后在网上(http://discussion.forum.nokia.com/forum/showthread.php?t=49418&highlight=EPOCROOT+environment+variable+capitalised),找到这样一个解决提示:
Commenting the "die line" in e32env.pm has solved the problem for me:
#die "EPOCROOT environment variable must be capitalised/n" if (!$found);

根据提示,终于搞定,但是没有明白这是为什么?

总结

按以下顺序安装。
(1)jre1.5.0_02
(2)ActivePerl-5.6.1.635
(3)Carbide.c++ 1.2
(4)S60 3rd Edition, FP1 SDK
(5)UIQ 3.1 SDK
(6)S80_DP2_0_SDK_CW SDK
(7)如果出现“EPOCROOT environment variable must be capitalised”错误,就打开对应的/Epoc32/tools/e32env.pm文件,把
die "EPOCROOT environment variable must be capitalised/n" if (!$found);
这句命令注释掉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: