一、概述:
mmp项目定义文件使用与平台和编译器无关的方法规定了项目的属性。makmake工具把项目定义文件转换成专门平台的makefiles。abld工具封装了对makmake的调用,比makmake使用的更广泛。实际上,在一般的使用过程中,你基本上只使用abld,不会用到makmake。
项目定义文件的扩展名是.mmp。
注意:
1、每个语句都占用一行。
2、使用C++风格的注释语法
3、最后的反斜杠被解释成延续标志,表示下一行与本行是一条语句。因此,指定目录的时候,不要写后面的反斜杠。例如,应该写 SYSTEMINCLUDE /epoc32/include而不是SYSTEMCLUDE /epoc32/include/。
二、常用语句摘要
aif | 程序信息文件 |
document | 文档文件(非代码文件) |
library | 导入库 |
resource | 程序项目的资源文件 |
source | 源文件 |
sourcepath | 源文件和项目的位置 |
systeminclude | 系统头文件目录 |
target | 项目生成的文件名字 |
targettype | 项目的类型 |
targetpath | 生成的文件放置的位置 |
uid | 项目的UID |
userinclude | 项目头文件目录 |
三、定义资源编译方式:
start resource source-file
[target target-file-name]
[targetpath targetpath]
[header]
[lang languages]
[uid uid-value-1 [uid-value-2] ]
end
例子:
将资源foo.rss 编译到 z:/private/10001234/foo.rsc.
start resource foo.rss
TARGETPATH private/10001234
end
将资源foo.rss 编译到 z:/private/10001234/bar.r01, 并在epoc32/include中创建头文件 bar.rsg
START RESOURCE foo.rss
TARGET bar
TARGETPATH private/10001234
HEADER
LANG 01
UID 0x10002345 0x10003456
END
四、UID:
Symbain的程序主要是用UID标识的,在v9.0后UIDs分为两类,Protected和Unprotected。如果开发一些Symbian的项目,将来要签名的使用Protected UID,程序必须签名才能安装在真机上。Unprotected可以用来做一些测试、教学程序。每个应用程序都有3个UID。uid1用于表示Symbian OS平台程序的类型:For EXE uid1 = 0x1000007A; For DLL&APP uid1 = 0x10000079;For ECom Plugin 0x10009D8D。UID2一般都去固定值0x100039CE,我也没有弄清楚具体的作用。UID3标识应用程序。SID的取值和UID3一样。 VID一般都取默认的0。UID都在程序的MMP中定义。
UID | Class | Range | Purpose |
Protected Range | 0 | 0x00000000 - 0x0FFFFFFF | Development use only |
1 | 0x10000000 - 0x1FFFFFFF | Legacy UID allocations | |
2 | 0x20000000 - 0x2FFFFFFF | V9 protected UID allocations | |
3 | 0x30000000 - 0x3FFFFFFF | Reserved | |
4 | 0x40000000 - 0x4FFFFFFF | Reserved | |
5 | 0x50000000 - 0x5FFFFFFF | Reserved | |
6 | 0x60000000 - 0x6FFFFFFF | Reserved | |
7 | 0x70000000 - 0x7FFFFFFF | Vendor IDs. | |
Unprotected Range | 8 | 0x80000000 - 0x8FFFFFFF | Reserved |
9 | 0x90000000 - 0x9FFFFFFF | Reserved | |
A | 0xA0000000 - 0xAFFFFFFF | V9 unprotected UID allocations | |
B | 0xB0000000 - 0xBFFFFFFF | Reserved | |
C | 0xC0000000 - 0xCFFFFFFF | Reserved | |
D | 0xD0000000 - 0xDFFFFFFF | Reserved | |
E | 0xE0000000 - 0xEFFFFFFF | Development use only | |
F | 0xF0000000 - 0xFFFFFFFF | Legacy UID compatibility range |
五、官方文档:
http://library.forum.nokia.com/index.jsp?topic=/S60_3rd_Edition_Cpp_Developers_Library/GUID-CEE609D8-50E3-422D-8FF9-42C25D669E59_overview-d0e1981.html