- 积分
- 10
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
用vs2003 为SX1开发程序
Alex
Yield Dynamics
2006-8-23
版权所有,转载注明出处。
前言
西门子机器从6688起就是爱好者们开发的热土。西门子官方也看到了人民大众的厉害,对开发者的支持也是极尽所能。从6688开发(或者更早),几乎每款机器都有相应的开发包(西门子称之为SMTK -- Siemens Mobility Toolkit)。到了SX1,换上了Symbian 6.1 这个开放系统(这也许是西门子的遗憾,Symbian看上去更像是Nokia自家的东西)。西门子同样也推出了对应的SMTK,开发环境则只限于VC6。对于想在VS2003开发的人来说非常不方便。以下就结合Nokia的工具(唉,非常不想提它),建立在VS2003上开发大S程序的环境。
准备
首先下载以下安装包
1.ActivePerl 5.8.7 build 813
支持编译脚本用的。
2.SDK for Symbian 60 v1.2
Symbian的SDK。
3.SMTK for Symbian OS and Series 60
;
(这个站是个人的,我这里平均3,4K,是ftp,用cuteftp等下载)。找到SMTK_S60_v_12.2077.06目录,只下载其中SiemensSeries60目录下的东西(如果开发JAVA,要下载Generic_Series60_MIDP_SDK目录下的东西)
或者去西门子网站(要注册)
这是西门子官方的开发包,有SX1的模拟器和SDK。
4.Carbide.vs 2.0.1
也可以去Nokia的官网下。
用来在VS2003上为Nokia的SDK建立开发环境。后面我们会写SX1的脚本文件,让VS2003也支持SX1的开发。
开始安装
说实话,Nokia手机造的不错,软件么,就不那么“以人为本”了。路径,脚本问题一大堆。所以,在开发包的安装过程中,尽可能安照教程中的顺序,而有些软件的地址有特殊的要求,我会在安装该软件的时候指出,如果安装中出现什么问题,比如模拟器不能运行,编译不了,可以回贴,我会尽力解答。
1. 安装ActivePerl
目录:任意
没什么特殊要求。
2. 安装 SDK for Symbian 60 v1.2
目录:最好只改变盘符,不改变路径,且最好和vs2003在同一盘中。它的默认路径为
SDK C:\Symbian\6.1\Series60
Shared C:\Symbian\6.1\Shared
如果你想安装到其它盘,最好保持目录结构,比如你想安装到E盘
SDK E:\Symbian\6.1\Series60
Shared E:\Symbian\6.1\Shared
没有其它什么特殊要求了。一路Next就可以。安装完成后,可以试一下模拟器。
(如果不是安装在默认目录,要修改模拟器的配置文件来改正一个bug。假设你的SDK安装到了E盘,那么转到E:\Symbian\6.1\Series60\Epoc32\Data下,打开epoc.ini,找到
_EPOC_DRIVE_D c:\symbian\6.1\Series60\epoc32\wins\d 改成
_EPOC_DRIVE_D e:\symbian\6.1\Series60\epoc32\wins\d
就可以了)
在控制台中键入epoc(如果在其它盘如E盘,要先换到该盘,如E:\epoc(回车)),然后回车,应该会出现一个虚拟的手机,并可以正常运行。
3. 安装SMTK for SX1
目录:可以说是必安装到安装程序指定的路径。安装程序会找到Symbian 60 SDK所在的目录,并建议你和它们安装在相同的地方(如Symbian 60 SDK的地址为e:\symbian\6.1\Series60,那么SMTK的地址就是e:\symbian\6.1\ Siemens)。不要改,一路NEXT就行。安装完成后,在控制台中再次输入epoc并回车(如果在其它盘,记得换过去),看看出来了什么。。。。。。运行在电脑上的SX1!!!!
这里要说一个比较重要的环境变量EPOCROOT(可以从控制面板->系统->高级->环境变量 中找到)。EPOCROOT 指出了模拟器的地址。装完Symbian 60 SDK 之后,EPOCROOT 的地址指向的是默认的模拟器,比如SDK在e:\symbian\6.1\Series60,那么EPOCROOT = \symbian\6.1\Series60\,等装完SMTK之后,EPOCROOT = \symbian\6.1\ Siemens \SX1\bin\。而且,都是相对路径,路径中是没有盘符的!这就是为什么在运行模拟器时总是要切换盘符的原因,模拟器会把当前盘符 + EPROCROOT 当成模拟器所在的路径。在后面加入的脚本文件中,EPOCROOT还有更重要的作用。
4. 安装carbide_vs
目录:任意,最好和SDK在同一盘
最好重启一下电脑,打开vs2003(可能会问你要注册码,你只要去nokia的官网注册一个用户,把用户名填在这,你就会得到一组注册码)。建一个Symbian的工程,编译,运行,如果一切正常,那么我们可以进下一步工作了。
配置(未完全完成,有个小bug,看其它)
先下载附件
Carbide_vs是这里的主角,我们主要是拿它开刀。Carbide_vs 检测安装在机器上的SDK,然后根据用户的选择,运行脚本文件,生成对应的vs2003工程。在编译时,vs2003会执行一个编译前命令-- rcmake,这是carbide_vs的一个工具,用来编译成生资源。最后,编译器编译源文件,连结,成生目标文件。要支持SX1,要添加几个我自己写的文件,下面,我们一项一项来。
1. 让Carbide_vs 检测到SMTK
假设你的系统盘为C盘。转到C:\Program Files\Common Files\Symbian\
找一下有没有devices.xml 这个文件,如果没有,附件里有一个,把它考过去。
打开它,把下面这一段加进去(如果有,那就不用加了)
<device id="Siemens_SX1" name="com.Siemens.SMTK.SX1" default="no" userdeletable="no">
<epocroot>E:\Symbian\6.1\Siemens\SX1\bin\</epocroot>
<epocroot>指出的是你SX1的模拟器的地址,如果你的模拟器在其它路径,要改过去。
2. 添加脚本文件
打开C:\Program Files\Common Files\Symbian\SDK Descriptors\Nokia\
这里有很多的XML文件,都是脚本文件,用来告诉编译器模拟器的路径,各种工具的路径以及成生的文件要放在什么地方。
把附件里的 SMTK_SX1.xml拷过来。
如果你的SMTK安装在默认路径上,且之前vs2003成生Symbian工程也没有问题,那么恭喜你,现在你可以打开vs2003来成生SX1的工程了。如果不是,往下看。
如果你的SMTK 和Symbian安装在不同的盘,那么你只能重装了,我现在还没有办法解决。
如果在其它地址,请按照下面的作
打开SMTK_SX1.xml,
找到
<toolsPath>$(EPOCROOT)..\..\..\Shared\epoc32\tools;$(EPOCROOT)..\..\..\Shared\epoc32\gcc\bin</toolsPath>
看到那么$(EPOCROOT)了吧,那就是SX1模拟器的路径。现在要设置 tools ,就要根据这个地址来了,关键就是要根据EPOCROOT找到Shared目录。
如果你的 Symbian SDK 的Shared 目录 在 E:\Symbian\6.1\Shared,而SMTK 在 e:\SMTK
就要这么写
<toolsPath>$(EPOCROOT)..\Symbian\6.1\Shared\epoc32\tools;$(EPOCROOT)..\Symbian\6.1\Shared\epoc32\gcc\bin</toolsPath>把所有关于Shared目录的路径都改正确。好了,现在你也可以在vs2003中为SX1写程序了。
其它
如果直接编译SX1的项目,在编译时会出错,看output 是
0x101fb032 0 0x0d4fb15a (路径)\aif\hello2aif.aif
这里有问题
这是在用rcmake 成生 aif文件时出错了,我还没有办法搞定,但可以绕过去。一是先手动生成aif文件,然后再编译(很不好搞,我从来不用)。二是选择S60 v1.2的SDK,先生成它的目标文件,它会产生aif文件,这在在生成SX1也是可以用的。当然,不是每次生成SX1的目标文件时都要这么做,只有你的资源文件变化时才用这个借鸡下蛋的办法。
后记
写这篇文章之前,我用了很多精力来实验各种可能的情况,如何让SX1模拟器运行,如何可以调试,如何可以直接成生SX1的项目。。。。。。很多很多,可以说是费了牛劲了。最后得出的结论就是,Nokia不适合搞软件。
Alex
Yield Dynamics
2006-8-23
版权所有,转载注明出处。 |
评分
-
查看全部评分
|