【Symbian基础知识整理】_bld.inf、*.mmp、*.pkg文件的作用

来源:互联网 发布:vue.js监听输入框变化 编辑:程序博客网 时间:2024/05/18 02:43

  对于每一个Symbian工程,都有三个很重要的文件:工程引导文件bld.inf、项目定义文件**.mmp和安装包控制文件**.pkg。前两者位于工程目录下的group文件夹内,**.pkg位于sis文件夹,以下是对这三个重要文件内容格式和作用的一些总结。

 

一。工程引导文件bld.inf

  这个文件其实是一个脚本文件,它告诉编译环境在build工程之前要做一些什么准备和知道一些什么东西,比如告诉编译器该工程要引用哪些mmp文件,哪些平台需要编译等。

1。PRJ_PLATFORMS

它告诉编译环境哪些平台是需要编译的,比如:

PRJ_PLATFORMS
WINSCW ARMV5 GCCE

就是告诉编译环境WINSCW、ARMV5、GCCE这三个平台是需要编译的。

2。PRJ_EXPORTS

它告诉编译器在编译之前需要把哪些文件拷贝到什么位置,实际开发过程中并不是一定需要这么做。比如工程中要include一个第三方的*.inl文件(内联函数的源文件,通常内联函数在C++头文件中实现),那么如果编译之前这个文件不存在编译是不会通过的,那么在bld.inf中可以这么写:

PRJ_EXPORTS

../Reference/ms_string.inl  /epoc32/include

这样编译的时候一个perl脚本会首先把你工程目录下Reference文件夹中的ms_string.inl文件拷贝到/epoc32/include目录下,然后再编译。这么做有时候是因为一个工程可能被到处拷贝然后编译和测试,那么用到的一些第三方的文件就不会存在于默认的开发路径下,比如刚才的例子中模拟器的头文件目录中是没有ms_string.inl文件的,那么我们就要告诉编译器在编译前要把这些文件放到指定的目录下才可以正确编译,当然也可以写一个帮助文档告诉程序员手动进行相关文件的拷贝。

3。PRJ_MMPFILES

告诉编译器要处理的工程文件名字和一些矢量图打包文件,比如:

PRJ_MMPFILES

gnumakefile Icons_loading.mk
gnumakefile icons_scalable_dc.mk

CTripProject.mmp

另外,在里面也可以使用#if、else等东西。

 

二。项目定义文件.mmp

这个文件以编译器无关和平台无关的方式指定项目组件的属性,这样导入其他平台的时候只要导入bld.inl脚本引用到mmp文件就能告诉编译器哪些组件和代码需要编译。文件中包含里如下一些属性进行相关组件的定义:

(1)       TARGET:应用程序的名称,该名称必须具有正确的文件扩展名:.exe、.app、.dll等

(2)       TARGETTYPE:定义为app(该选项确定UID1的值),意味着这是一个GUI应用程序,还存在许多其他类型,包括dll、exe、tsy、csy和ldd。

(3)       UID:指定GUI应用程序的唯一系统标志符。

(4)       TARGETPATH:最终生成的应用程序及其组件所在的位置,总是位于/system/apps/下面,该目录相对于设备驱动器、模拟驱动盘(例如C:)或模拟ROM(Z:)驱动盘的根目录。

(5)       SOURCEPATH:项目源文件的位置路径。

(6)       LANG:若应用程序支持不同语言,则使用该语句。每种支持的语句具有两位数字的代码。

(7)       SOURCE:指定项目源文件的名称。可以多次使用该语句,并且在每条语句上可以有多个文件名。

(8)       RESOURCE:指定资源文件。

(9)       USERINCLUDE和SYSTEMINCLUDE:指定应用程序特有的头文件的位置。

(10)   LIBRARY:列出需要链接的应用程序框架和图形库――这些是对应于共享库DLL的.lib文件,将在运行时调用这些DLL函数。

(11)   AIF:指定应用程序信息文件(.aif),该文件包含应用程序资源文件中定义的图标和其他应用程序属性。

针对于项目定义文件,我们看一下其中部分关键词的详细解释:

(1)       UID:全球唯一性标志符,由32位二进制数字构成。在symbian os中,通过UID类型标志对象,UID类型具有3个组件UID:UID1、UID2、UID3。

UID1:确定文件是文档还是可执行码,应将它看作一个系统级的标志符,用于区分可执行文件、DLL等文件。.mmp文件中的TARGETTYPE语句确定UID1。

UID2:对于文档文件,UID2确定文档类型(应用程序数据文件或.aif文件)。对于可执行代码文件,UID2确定可执行文件的类型(.app、.dll、.tsy)。对于可执行文件,在.mmp文件中的UID行上指定UID2和UID3。

UID3:是一个应用程序级的标志符,应用程序的UID3必须不同于其他所有应用程序。只有symbian才可以发布这些值。通过电子邮件到symbian获取,开发实验时,可以使用0x01000000~0x0FFFFFFF,但发布时不能再使用。

Symbian os使用UID将文档(数据文件)和.aif文件与它们各自的应用程序关联起来;UID3包含在每个数据文件、可执行文件或.aif文件的头部。然而,可执行文件和它们的组件仍然需要具有正确的文件扩展名,否则它们将无法正确运行。

当应用程序创建文档文件时,应用程序框架将所有的3个UID和32位的检查总数自动合并到头文件的前16个字节。

(2)       AIF(Application Infomation File)文件

在运行时使用.aif文件,并且存储关于应用程序的数据。在Symbian中aif文件包括:

a、  两种大小的图标

b、  各种功能,例如文档嵌入、新文件的建立、是否隐藏应用程序以及MIME类型支持的优先级。

c、  可选地使用支持语言的应用程序标题(名称)。

 如果没有.aif文件,应用程序将使用默认的图标,以应用程序名称(省略扩展名)作为标题。series60 UI和应用程序框架Avkon提供了将标题和应用程序相关联的可选功能,在资源文件rss中只能应用程序的长短标题和图标矢量图文件.mif,如果需要,可以为每种语言提供产生单独的标题文件,只需要在mmp文件中声明即可。 

 

三。安装包配置文件.pkg

.pkg文件就是安装包配置文件,是制作symbian安装程序的核心文件。它包含了制作安装文件所需要的全部信息,为了生成.sis文件,必须先编写.pkg文件。.pkg文件就像Symbian的资源文件一样有自己的语法规则和和编写方法。

它的语法规则和编写方法参照:

http://blog.csdn.net/btooth/archive/2006/06/24/829333.aspx

原创粉丝点击