qt for symbian资源和dll的拷贝

本文详细介绍了在Symbian平台上,如何通过pro文件配置资源文件和动态链接库(DLL)的复制过程,确保应用程序能够在模拟器及真实设备上正常运行。具体包括资源文件和DLL在模拟器与真机环境下的不同配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当一个程序需要加载使用很多资源时:我们需要将这些资源都拷贝到真机中。比如:我们要播放几个声音文件,需要将声音文件给拷贝到真机中。类似的:程序可能还需要很多dll。这些dll又分两种:一种是已经做好的,一种是我们项目中生成的(亦即:我们工程分很多模块,最终生成了若干个dll和最终的exe)。对于前者:我们只要做一个拷贝即可,而对于后者:则需要生成后拷贝.

对于纯symbian程序,这些都是写在mmp和pkg文件中的,但是在symbian中:我们需要将其全部书写在pro工程文件中,而后qmake时其会自动将pro转为mmp和pkg。所以关键是:如何书写pro文件,以前也写过一篇博文说明这个,但是那时写的不太详细,这里详细说明一下。

1:对于模拟器版本。

首先:编译模拟器版本,我们也是需要把资源和dll都拷贝到模拟器环境目录中的。

①对于资源:

symbian { BLD_INF_RULES.prj_exports += / "./voice/123.wav /epoc32/winscw/c/resource/apps/qtqt/123.wav" / "./voice/456.wa /epoc32/winscw/c/resource/apps/qtqt/456.wav" /

如上:只要前边替换为工程中资源的实际所在路径,后边写/epoc32/winscw/c/resource/。。。自己的实际路径即可。

这样:我们便可将资源拷贝到模拟器环境中,模拟器便可以使用这些资源,不至于启动不起来了~

②对于dll库:

首先需要声明一下,其次是拷贝。声明还是很有意思的,因为在win32环境下和symbian环境下其声明方式是不一样的,对于动态库:

win32 { LIBS += -L BaseClass.lib } symbian:LIBS += MMP_RULES += "LIBRARY BaseClass.lib"

此后便是简单的拷贝,拷贝方式和资源拷贝没什么区别。注意的是:如果您的dll都是工程编译过程中生成的,那就不需要拷贝了。

2:对于真机版本:

也是分资源拷贝和dll拷贝。拷贝方式和上述不同。

①对于资源文件的拷贝:

symbian: { LANGUAGEFILE.pkg_postrules = "/"./language/language.dat/"-/"!:/resource/apps/qtqt/language.dat /" " DEPLOYMENT += LANGUAGEFILE }

②对于dll动态库的拷贝:

symbian: { QTLOGDLL.sources = /epoc32/release/gcce/urel/QtLog.dll QTLOGDLL.path = /sys/bin DEPLOYMENT += QTLOGDLL }

如果你用的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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值