×
Namespaces

Variants
Actions

编译sis

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

文章
huwell 在 30 Jun 2007 创建
最后由 hamishwillee 在 15 Dec 2011 编辑

每个工程最后都要编译成sis,这个才是我们所需要的,这个是symbian特有的安装文件,我们所有的程序和资源等都压缩打包在这里面,因此它的编译很重要。


总的来说,我们要先将程序编译成面向机器的文件,这可不是在模拟器上能成功显示就可以的,我们一般需要如下指令:

bldmake bldfiles
abld build thumb urel或abld build armi urel


thumb和armi目标有点区别,这里有点参考:armi和thumb是移动设备CPU的两套指令集,thumb是精简指令集,每条指令2个字节,而armi是4个字节。


编译完成后的文件会存储在\Symbian.0\Series60\Epoc32\release\thumb\urel\目录下,我们pkg文件就要指明源文件在次。(注意,如果是symbian7.0,则app文件会存放在..\..\..\epoc32\release\thumb\urel\下,而资源文件等会存放在..\..\..\epoc32\data\z\system\apps\app_name\下,这和上面的是不同的,这个要注意)


这时我们在pkg文件(这里存放了编译时所必要的信息)所在目录下,输入命令行: makesis app_name.pkg 即可生成相应的sis。

这里注意了,典型的pkg文件如下:

;
;Languages
&EN
;可改为&ZH表示中文
;
; UID is the app's UID
;
#,(0x10005B91),1,0,0
;
;Supports Series 60 v 0.9
(0x101F6F88), 0, 0, 0,
;注意了这里0x101F6F88是symbian6.1系列特有的
;可以向下兼容到7650(symbian 6.0),而如果是symbian7.0
;则为0x101F7960了,这个不能错
;否则安装时会提示该程序可能和手机平台不兼容,而结果是你的程序执行不起来。
;
;
"\Symbian.0\Series60\Epoc32\release\thumb\urel\HelloWorld.APP"
-"!:\system\apps\HelloWorld\HelloWorld.app"
"\Symbian.0\Series60\Epoc32\release\thumb\urel\HelloWorld.rsc"
-"!:\system\apps\HelloWorld\HelloWorld.rsc"
;注意了,这里的源文件地址一定要正确,否则就会编译报错,说找不到文件了,这个是最常见的错误。


还有个需要注意的问题就是,你一定得装好vs6sp5,这个是visual studio的补丁,注意要装英文版的,否则就不能正确生成可运行的sis!


还有,symbian SDK提供了一个生成sis的IDE工具,叫sisar,可以在命令行里直接启动,注意,根据我的经验是,在SDK 9.0/1.2中你用它生成一个新工程时会出错,而使用2.0则可以,所以你要使用2.0下的sisar最正确,但苦恼的是2.0是为6600系列准备的,所以它下面编译好的sis你无法运行在7650/3650上,哎,知道我是怎么解决的吗?——我装了两个:)


先装2.0后装1.2,然后你会发现可以编译sis了,也可以运行sisar了,但是!你的epoc无法调用,怎么办??改epocroot这个环境变量,哈哈,一切又都解决了。

This page was last modified on 15 December 2011, at 13:23.
35 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×