Hello World 跑通。

::: {#msgcns!BAC70107D054E892!250 .bvMsg}

对Symbian感兴趣了,
首先搭建了一个开发环境。
参考了:
下载了SDK,Carbide.vs,PERL,JRE,前两个从Nokia官网,后者从PERL,SUN的官网上可以分别找到;
机器已经安装了VS2003。
SDK为 OS9.2-S60 3.1,Perl 5.8.8 ,JRE 1.6
一切安装完毕之后,开始试着编译程序,从最简单的Hello World开始,
自带了一个例子C:Symbian9.2S60_3rd_FP1S60ExHelloWorldBasic
VS2003使用Carbide.vs建工程成功,编译无问题。注意必须在 SDK 同盘符下才可在EPOC模拟器中看到
命令行下出现了一些问题
1、abld build wins udeb 出错
解决:
……
所以对于S60 3.0必须在BLD文件中加入prj_platforms参数,或在prj_platforms参数项中增加定义WINS,也就是BLD.INF中必须有: PRJ_PLATFORMS ... WINS ...
……
2、Unable to identify a valid CodeWarrior for Symbian OS installation
在添加prj_platforms,再编译 winscw时出现。
解决:
……
I realized after seeing this problem again that the above solution is probably not correct for this scenario. If you get this error when building from the command-line:
</p>
ERROR: Unable to identify a valid CodeWarrior for Symbian OS installation Then you probably have never istalled CW or Carbide.vs. The problem is that the include paths for the WINSCW compiler need to be generarted from environement variables and can't becuase Carbide does not create them. Currently to workaround the problem you can install CW or Carbide.vs. There is a utility in these installations called 'evn_update.exe' that can set these variables for you dynamically.
by Tim
3、EPOCROOT environment variable must be capitalised
解决问题3编译winscw时出现。
解决:
EPOCROOT并非所有的IDE中都要设置,象用CW,EPOCROOT就不一定会在系统变量里出现,可以照样使用CW图形界面创建应用。只不过往往用命令行创建会出现:EPOCROOT environment variable must be capitalised错误,意思是EPOCROOT环境变量必须大写,可是无论你将环境变量中的还是devices.xml中的EPOCROOT改成大写字母,问题依然存在。下面有一个方法是我遇到类似问题时的解决方案,你可以试试,也许能行。 在%EPOCROOT%/EPOC32/Tools/目录中找到E32env.pm文件,用文本编糭器打开,找到这样一行: die ("EPOCROOT environment variable must be capitalised")... 在行首加一个“#”将其注释起来,保存。然后在试试再用命令行创建应用,如果出现了其它的什么问题,那就是你的整个IDE环境安装的问题,或是Perl,JRE版本不匹配,或是SDK的安装位置不正确(有些SDK必须安装在C盘),仔细阅读你的软件安装说明书。
by r06006
4、未解决 NMAKE : fatal error U1073: don't know how to make EDLL.LIB
问题1后编译wins出现。貌似是因为没有相关的链接库,编译ARMI时同样出现
最后运行epoc后,在安装里面可以找到Hello World程序,运行通过

:::