symbian 编译(转载)

来源:互联网 发布:淘宝店家双十一宣传语 编辑:程序博客网 时间:2024/05/29 17:41

symbian 编译(转载)

110人阅读 评论(0) 收藏 举报

Symbian里,一个Project通常是按inc,src,group等目录组织,group目录里通常放的是项目文件,所以编译时要先到这里。用命令提示符模式进入刚才说的那个目录下,然后执行bldmakebldfiles.

 

命令:bldmake bldfiles

解析:这个命令会在group目录下生成一个abld.bat的批处理文件,这个文件是编译命令bldmakebldfiles根据当前的环境生成的,Symbian项目的工程文件是与具体的目标平台无关的,且与具体的IDE环境无关,项目编译成什么目标平台,由项目开发者在编译时决定,在后续的编译中,都要使用这个新生成的批处理命令abld.bat来完成。

从Symbian OS 9.1开始,常用的目标平台主要有3种:WINSCW、GCCE和ARMV5。WINSCW主要用于在模拟器上运行和调试程序。通过 GCCE编译的程序可以运行在目标手机上,但其编译出的可执行程序比较大且执行效率不是很高。ARMV5 编译器是 ARM公司的新版编译器,在S60 3rd的SDK中没有集成,需要付费才能获得,编译出的程序在目标手机上的执行性能非常高。

并且会在C:/Symbian/6.1/Series60/Epoc32/BUILD下生成C:/Symbian/6.1/Series60/Epoc32/BUILD/SYMBIAN/6.1/SERIES60/SERIES60EX/HELLOWORLD/GROUP这个深的一个目录,并在最底层目录下生成一堆.make文件。

 

命令:abld build winscw udeb(abld build armv5urel)

解析:这个命令会编译我们的程序,最后在C:/Symbian/6.1/Series60/Epoc32/Release/wins/UDEB目录下生成我们的helloworld, 这个命令中的参数build表示编译程序所有,包括资源、代码等,WINSCW表示编译成WINSCW平台的目标代码,主要运行在模拟器上,udeb 表示编译成 Unicode 编码的 debug模式。

使用这个命令编译完成后,就可以在模拟器上运行程序了,在命令行启动模拟器,输入下面的命令后按回车键:

epoc

命令:abld build gcce urel

这个命令中的参数“gcce”表示使用GCCE编译器把程序编译成可在手机上执行的编译,如果在计算机上安装有ARMV5的编译器,只要把“gcce”替换成“armv5”就可以使用ARMV5编译器进行编译了,参数“urel”表示编译成Unicode编码的release模式。

命令:abld reallyclean winscw udeb

解析:clean工程文件

 

devices 查看安装的SDK

   Nokia_Symbian3_SDK_v0.9:com.nokia.s60 - default

devices -setdefault Nokia_Symbian3_SDK_v0.9:com.nokia.s60设置缺省SDK

 

3.6 打包发布

 

3.6.1  打包文件.pkg

一个Symbian程序开发完成后,是要安装到手机上运行的,这时候就需要制作一个安装程序sis文件,通过sis文件才能将程序安装到手机上运行。

制作在Symbian手机上运行的安装程序,首先需要有一个制作安装程序描述文件*.pkg,在这个*.pkg文件中,主要存储着有哪些文件需要被打包到安装程序sis文件中,而且还要指 明将来在安装时,这些文件安装到手机的什么目录下。

通过Carbide.c++1.3的向导生成的Symbian工程,向导默认会产生一个pkg文件,这个pkg文件就存储在sis目录中。

3.6.2  制作Symbian安装程序sis文件

有了上面的 pkg 文件后,制作安装就比较轻松了。制作 sis 文件有两种方式:命令行和IDE环境中创建。

1.通过命令制作安装程序

使用命令行的方式制作安装程序,比较简洁明了,需要做什么工作就在 DOS 命令窗口输入什么命令就可以了。首先要打开一个 DOS窗口,进入到要制作安装程序的 Symbian 项目的sis目录中

makesis XXXX.pkg

在开始执行makesis命令之前,先检查一下Exam0303NewGui_S60_3_X_v_1_0_0.pkg这个pkg文件,打开这个文件,发现这个文件中有3个以$号开头的环境变量,这是Carbide.c++1.3的新建向导中生成的,在IDE环境中编译时可以使用,由于我们使用的DOS 环境中没有设置这样的环境变量,因此需要把这几个环境变量修改为实际的值,

$(EPOCROOT) 根据SDK实际安装情况

$(PLATFORM) gcce或armv5

$(TARGET) urel

对pkg文件中的环境变量修改完之后,在DOS的命令行中输入如下命令并按回车

makesis XXXX.pkg

使用以上命令制作的S60 2nd版手机安装程序sis文件,可以直接在手机上安装运行;使用以上命令制作的S603rd版手机的安装程序sis文件,还需要对sis文件进行签名才可以在手机上安装运行,sis签名相关的内容将在3.6.3节介绍。

 

2.通过IDE环境制作安装程序

使用Carbide.c++1.3开发Symbian项目,可以比较容易地在IDE环境下制作安装程序。

在新建或导入一个Symbian项目后,使用右键单击项目的名称,在弹出快捷菜单中选择最下面的“Properties”,在打开的“Propertiesfor Exam0303NewGui”对话框中,选择左侧树视图中的“Carbide.c++”,展开后再选择下面的“CarbideBuild Configuration”,然后在右侧的“ActiveConfiguration”中的下拉式组合列表框中选择“PhoneRelease(GCCE)[S60_3rd_MR]”,再选择下面的标签页“SISBuilder”,如果下面的列表是空的,就单击右侧的“Add”按钮,添加一个SIS Builder,这时会打开“SISProperties”的对话框

这个对话框主要用于选择要使用的pkg文件,签名选项处根据需要进行设置。如果是S60 2nd版的程序或不想对S603rd版的程序进行签名,那么可以选择“Don’t sign sis file”;下面的两个选项都是为S603rd版的程序进行设置的,如果选择了“Self sign sisfile”,在编译时,Carbide.c++会在生成sis后,自动地生成一个证书对程序签名;如果选择了“Sign sis filewith certificate/key pair”,就需要用户自己指定签名证书。

通过上面的对话框设置,以后在使用Carbide.c++为目标手机进行编译时,编译完成后,就可以直接在sis文件中找到安装程序了。

 

3.6.3  S60 3rd版安装程序签名

从Symbian OS 9.1开始,在OS中引入了新的安全模型,更改了工程组织、目录权限、API能力限制等,增强了程序的安全性。Symbian从以下几个方面增强了程序的安全性。

(1)TCB平台安全性的核心组件。

(2)TCE保护平台的敏感API。

(3)能力访问敏感API的权限。

(4)数据锁定安全的本地存储。

(5)SID与VID为软件和厂商提供的安全ID。

(6)边界与策略安全的IPC。

(7)软件安装程序设备上仅允许受信任的软件运行。

从Symbian OS 9.1开始,对应的S60SDK是第三版,引入了对API的能力限制,能力是授予访问敏感API权限的令牌。如果在程序中需要SymbianOS中的特定功能的API,则需要在程序的工程组织文件中声明相应的能力,在制作安装程序时也要使用具有同样能力的证书进行签名。

Symbian将API分为4类,如图3.13所示。60%无限制的API和用户在安装期间可以授权的API可以满足大多数的应用,这类程序使用自签名证书就可以对安装程序进行签名,签名后的安装程序就可以在手机上安装、测试和发布应用。自签名的证书可以使用SDK提供的makekeys工具生成自签名证书。

如果程序使用了 Symbian  Signed 能力授权的API,开发过程中,需要从www.symbiansigned.com的网站上申请开发者证书进行签名,然后才可以安装到手机上进行测试。申请的开发证书是和手机绑定的,在开发完成后,要在symbiansigned的网站进行签名才可以发布并安装到任何目标手机上。

对生成的 sis 文件进行签名,因为还没有自签名证书,可以先使用下面的命令生成一个自签名证书:

该命令执行后,就会生成可以在S603rd版手机上安装的程序Exam0303NewGu.SISX,只要是签了名的sis,扩展名是sis或sisx都可以,在安装时,手机的安装程序能给识别出来,使用3.6.4介绍的方法安装到手机上就可以运行了。

 

一个典型的bat文件内容:

Makearm.bat


原创粉丝点击