正文:
众所周知bld.inf中使用prj_exports指令可以在构建一个模块时将一个文件从源代码目录中拷贝到SDK中。
例如可以将一个C++头文件拷贝到/epoc32/include/目录下.
PRJ_EXPORTS ../inc/HelloWorld.hrh /epoc32/include/HelloWorld.hrh
但是,很少有人知道prj_exports也可以用来拷贝一个完整的目录结构:
prj_exports
:zip zip_file [destination_path]
以:zip开头的语句指示构建工具解压指定的zip文件,并将解压的内容拷贝到指定的目标路径下。
如果未指定的目标路径,那么解压的内容会被拷贝到SDK根目录。
例如下面的指令将epoc32.zip中的内容解压到SDK根目录。
// bld.inf
...
PRJ_EXPORTS
:zip epoc32.zip /
完整的示例程序: QHelloWorld(EXIF).zip
注: 这份代码用于演示一个通用的Symbian bld.inf语法,因此它不必非得是S60程序。
实际上这是一份UIQ3程序,用S60 SDK构建它会出错,但的确能看到epoc32.zip中的文件和目录被解压到SDK中了。
参见:
"prj_exports in bld.inf file syntax"