|
|
编译与运行 symbian的编译要求比较奇怪 它需要一个bld.inf文件与一个mmp文件 bld.inf声明build的相关信息 通常只包括这次build会引用到的mmp文件 .mmp文件保存工程与makefile相关的信息 用于具体的build过程 它也叫makmakefile project ,也就是创建makefile的文件 bld.inf的文件名是固定的 .mmp文件的文件名则根据不同的工程而起不同的名字 下面是hellotext工程中这两个文件的内容 CODE // BLD.INF PRJ_MMPFILES hellotext.mmp CODE // hellotext.mmp TARGET HelloText.exe TARGETTYPE exe SOURCEPATH . UID 0 SOURCE hellotext.cpp USERINCLUDE . SYSTEMINCLUDE \epoc32\include LIBRARY euser.lib 把上面两个文件保存到与hellotext.cpp相同的目录下 编译过程: 1 打开一个dos窗口 2 cd 到hellotext.cpp所在目录 3 运行下面命令 bldmake bldfiles abld build wins udeb 运行完后 你就可以到 epoc/release/wins/udeb目录下查找hellotext.exe文件 // BLD.INF PRJ_MMPFILES hellotext.mmp bld.inf只是声明这个build需要调用hellotext.mmp模块
CODE // hellotext.mmp TARGET HelloText.exe 生成的应用程序名是hellotext.exe TARGETTYPE exe 生成的应用程序类型是exe类型,在symbian上可运行的程序类型有exe与app,另外还支持生成其它类型文件,如dll SOURCEPATH . 在哪里查找源文件 这里指示是在当前目录下 UID 0 对exe程序不需要指定,这里写0 SOURCE hellotext.cpp 生成应用程序需要的源文件,这里是hellotext.cpp 可以有多个source 一直照这样的格式写就可以 USERINCLUDE . 用户自定义的头文件在哪里查找 这里是当前目录 SYSTEMINCLUDE \epoc32\include 系统头文件在哪里查找 一般都是这个值 LIBRARY euser.lib 需要链接的库 这是euser.lib
symbian的开发环境是使用perl开发的 所以需要有一个确定的文件名声明工程内容 这就是bld.inf bldmake编译时先读bld.inf 看需要哪个文件指导编译过程 然后对mmp文件进行转换,生成makefile及其它相关的编译规则文件 同时在当前目录下生成abld.bat文件 后面就是使用abld进行具体编译 bld.inf意义就是 build info.编译信息 mmp文件就是 makmake file bldmake 就是build make info
bldmake bldfiles 创建build files abld build wins udeb 创建win simulator unicode debug 版本
另外可能用的其它两个命令是 bldmake clean 清除生成的build file,这在改变mmp文件后应该做 abld reallyclean 清除生成的目标文件(.o) 这在改变源文件内容后使用
|
|
|
|
|
|