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

来源:互联网 发布:代申请淘宝达人大v 编辑:程序博客网 时间:2024/05/17 00:55
    参考了网上的一些文章,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);
    这句命令注释掉。 

原创粉丝点击