Symbian探索日记2 编译的过程

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

Symbian探索日记2 编译的过程

1. C++ BuilderX

Symbian的开发环境似乎不是那么容易配置.不过Borland的C++ Builder对Symbian的支持比较好,里面还有专门针对Symbian开发的工具选项呢.不过由于Microsoft Visual C++我用得比较熟悉,而且,有Visual Assist这样强大的工具支持,所以我觉得还是在Microsoft Visual C++上开发比较适合我.

2. 命令行的编译

命令行的编译应该是SDK的文档中有讲解的.针对Symbian SDK中的Series60Ex的Graphics的例子还说吧.

a) 首先我们得用命令行到Series60Ex\Graphics\Group这个目录.然后需要设置VC的环境变量,最好的办法就是直接运行\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars.bat这个批处理文件.我的做法就是Group这个目录建立一个command.bat文件,里面的内容如下

PATH=%PATH%;D:\Microsoft Visual Studio .NET 2003\Vc7\bin

Cmd

然后,我只要在Windows里双击这个文件,就会自动到这个目录的命令提示符下,然后输入vcvars32 + 回车,就设置好了VC的环境变量.

b) 输入bldmake bldfiles. 是基于perl语言的操作,所以说一定要装Perl才用使用SDK.

c) 如果是编译生成模拟器运行的,那么使用

abld build wins udeb

如果是编译生成机器上跑的,那么就使用

abld build armi urel

编译后,有两个目录是它给你生成的.如果你想重新生成,可以通过手动删除这两个目录.

工程编译目录:

\Symbian\6.1\Series60\Epoc32\BUILD\SYMBIAN\6.1\SERIES60\SERIES60EX\GRAPHICS\GROUP

保存的编译的MAKE文件, OBJ文件等等.

程序在模拟器的目录

\Symbian\6.1\Series60\Epoc32\Release\wins\UDEB\Z\SYSTEM\apps\graphics

保存了模拟器上运行的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]: *** [..\..\..\EPOC32\RELEASE\ARMI\UREL\GRAPHICSAPP] Error -2

make: *** [TARGETGRAPHICS] Error 2

make -r -f "\Symbian\6.1\Series60\EPOC32\BUILD\SYMBIAN\6.1S\SERIES60\SERIES60EX\BMPMANIP\GROUP\ARMI.make" FINAL CFG=UREL VERBOSE=-s

解决办法: 1.把全局非静态变量变成全局静态变量,static

2.把全局变量编成类里面的成员变量

这样个问题估计是Symbian的书上说的那样,编译成ARMI最后目标的时候,编译器要对代码中的内存使用进行严格检查所造成的.

http://discussion.forum.nokia.com/forum/showthread.php?s=&threadid=27446

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有