当一个程序需要加载使用很多资源时:我们需要将这些资源都拷贝到真机中。比如:我们要播放几个声音文件,需要将声音文件给拷贝到真机中。类似的:程序可能还需要很多dll。这些dll又分两种:一种是已经做好的,一种是我们项目中生成的(亦即:我们工程分很多模块,最终生成了若干个dll和最终的exe)。对于前者:我们只要做一个拷贝即可,而对于后者:则需要生成后拷贝.
对于纯symbian程序,这些都是写在mmp和pkg文件中的,但是在symbian中:我们需要将其全部书写在pro工程文件中,而后qmake时其会自动将pro转为mmp和pkg。所以关键是:如何书写pro文件,以前也写过一篇博文说明这个,但是那时写的不太详细,这里详细说明一下。
1:对于模拟器版本。
首先:编译模拟器版本,我们也是需要把资源和dll都拷贝到模拟器环境目录中的。
①对于资源:
如上:只要前边替换为工程中资源的实际所在路径,后边写/epoc32/winscw/c/resource/。。。自己的实际路径即可。
这样:我们便可将资源拷贝到模拟器环境中,模拟器便可以使用这些资源,不至于启动不起来了~
②对于dll库:
首先需要声明一下,其次是拷贝。声明还是很有意思的,因为在win32环境下和symbian环境下其声明方式是不一样的,对于动态库:
此后便是简单的拷贝,拷贝方式和资源拷贝没什么区别。注意的是:如果您的dll都是工程编译过程中生成的,那就不需要拷贝了。
2:对于真机版本:
也是分资源拷贝和dll拷贝。拷贝方式和上述不同。
①对于资源文件的拷贝:
②对于dll动态库的拷贝:
如果你用的arm编译器,把上边的gcce修改一下.这里边DEPLOYMENT 这个宏可以随便书写的,你也可以依据dll的不同分组定义多段这样的拷贝代码,方便结构清晰。同时:dll的声明也是需要的喔~
容易出错的地方:拷贝文件的时候:前后名字一定要一样,别笔误写错了。同样:拷贝多个文件时,若其名字差不多,可千万别写错了,不然后期检查起来可痛苦了。
这里只给出了gcce的拷贝,如果你想一个pro中同时可以编译gcce和arm版本,而又不想每次都来手动修改pro,那就对应着写两段,而后用不同编译器的宏区分一下就成了。
ps:推荐wiki上一片相关文章: http://wiki.forum.nokia.com/index.php/Qmake%E7%9A%84%E4%BD%BF%E7%94%A8%E6%BC%94%E7%A4%BA