Symbian 3rd 知识点
2010-06-04 14:04:00 来源:WEB开发网命令行的编译应该是SDK的文档中有讲解的.针对Symbian SDK中的Series60Ex的Graphics的例子还说吧.
a) 首先我们得用命令行到Series60ExGraphicsGroup这个目录.然后需要设置VC的环境变量,最好的办法就是直接运行 Microsoft Visual Studio .NET 2003Vc7invcvars.bat这个批处理文件.我的做法就是Group这个目录建立一个command.bat文件,里面的内容如下
PATH=%PATH%;D:Microsoft Visual Studio .NET 2003Vc7in
Cmd
然后,我只要在Windows里双击这个文件,就会自动到这个目录的命令提示符下,然后输入vcvars32 + 回车,就设置好了VC的环境变量.
b) 输入bldmake bldfiles. 是基于perl语言的操作,所以说一定要装Perl才用使用SDK.
c) 如果是编译生成模拟器运行的,那么使用
abld build wins udeb
如果是编译生成机器上跑的,那么就使用
abld build armi urel
编译后,有两个目录是它给你生成的.如果你想重新生成,可以通过手动删除这两个目录.
工程编译目录:
Symbian6.1Series60Epoc32BUILDSYMBIAN6.1SERIES60SERIES60EXGRAPHICSGROUP
保存的编译的MAKE文件, OBJ文件等等.
程序在模拟器的目录
Symbian6.1Series60Epoc32ReleasewinsUDEBSYSTEMappsgraphics
保存了模拟器上运行的App文件,只要删除这个目录,模拟器上就没有这个程序了.
3. 全局非静态变量引起的错误
我在view的cpp的增加了一个Tint x;在模拟器上运行没有任何问题.当我用armi方式编译到目标机器上的时候,出现了一个奇怪又经典的错误.
PETRAN - PE file preprocessor V01.00 (Build 183)
Copyright (c) 1996-2001 Symbian Ltd.
ERROR: Dll 'Graphics[10005BBE].APP' has initialised data.
make[1]: *** [......EPOC32RELEASEARMIURELGRAPHICSAPP] Error -2
make: *** [TARGETGRAPHICS] Error 2
make -r -f "Symbian6.1Series60EPOC32BUILDSYMBIAN6.1SSERIES60SERIES60EXBMPMANIPGROUPARMI.make" FINAL CFG=UREL VERBOSE=-s
解决办法: 1.把全局非静态变量变成全局静态变量,static
2.把全局变量编成类里面的成员变量
这样个问题估计是Symbian的书上说的那样,编译成ARMI最后目标的时候,编译器要对代码中的内存使用进行严格检查所造成的.
更多精彩
赞助商链接