详解Qt For Symbian工程文件中一些特异写法
创始人
2024-07-31 22:50:15
0

本文讲解的是Qt For Symbian工程文件的一些特异写法,使用到了Qt库的内容,想要了解更多的话,请看本文的讲解。

symbian本身的工程文件不具有cross-platform特性,都是一些自己唯一的定义文件,像:*.mmp,*.pkg文件。而Qt得工程文件为*.pro。如何实现*.pro到*.mmp ,*.pkg文件的映射则值得总结。

1、添加库

对于添加库,无论是静态还是动态库,都需做两步:先是声名一下,其后是拷贝。二者仅仅是声名的方式不一样。

2、声名:

(1)动态库

 

  1. symbian:LIBS +=   
  2. MMP_RULES += "LIBRARY           fbscli.lib"  

(这里我加的是名为fbscli的动态库)

(2)静态库

 

  1. symbian {  
  2. LIBS          +=     -lIsolated.lib \  

(这里我加的是名为Isolated的静态库)

3、拷贝
 拷贝分两部分:一部分是针对编译进行的拷贝,一部分则是针对真机的拷贝。 编译器在编译时:需要找到lib文件,而其查找的路径是epoc32\release下的子文件夹。  当然了:你要在模拟器上跑,还需要再拷贝到模拟器对应的文件夹下。

 

  1. symbian {  
  2. BLD_INF_RULES.prj_exports += \                    
  3. ".\bin\HWR\Winscw\NRC.dll                                 \epoc32\release\winscw\udeb\NRC.dll" \    
  4. ".\bin\HWR\Winscw\NRC.lib                                 \epoc32\release\winscw\udeb\NRC.lib" \    
  5. ".\bin\HWR\Armv5\NRC.dll                                      \epoc32\release\Armv5\urel\NRC.dll" \             
  6. ".\bin\HWR\Armv5\NRC.lib                                      \epoc32\release\Armv5\lib\NRC.lib" \          

winscw文件夹对应emulator , ArmV5对应真机。

//pkg文件,该文件在symbian中是用于打包的文件。在这里作用就是:拷贝对应文件到真机上。

//注意:里边的OCRDll这个名称是可以随便指定的,只要最后使用DEPLOYMENT += 将其加进去就可以。

  1. symbian: {           
  2.      OCRDll.sources =./bin/HWR/Armv5/MMI_BluetoothEngine.dll  
  3.      OCRDll.path = \sys\bin  
  4.      DEPLOYMENT += OCRDll  

4、区分真机和模拟器

对于一些代码部分,例如:通讯功能,摄像头模块等。其实无法运行在模拟器上的,只能运行在真机上。所以有时候:对于一些这样的代码模块,我们最好用Macro宏来将其包起来,只在编译真机版本时:才编译这部分;而在编译模拟器版本时:却不编译这部分。对于这个宏,我们需要在pro文件中声明。(亦即:声明一个只针对真机的宏)。

  1. symbian {  
  2. MMP_RULES += $$LITERAL_HASH"ifdef MARM_ARMV5"   
  3. MMP_RULES += "MACRO  REAL_PHONE"       
  4. MMP_RULES += $$LITERAL_HASH"endif"   

(这里假设该宏名为REAL_PHONE )

补充:当然还有很多特异的写法,大家可以查看我上传资源中的Qt for symbian这个资源(http://download.csdn.net/source/2447574)。这是官方给的一个指导性文件,除去上边这些外,别的里边介绍的也比较详细。

上边这两个我都实际使用过,没有问题。测试环境:Qt 4.5.0 Qt 4.6.2 Qt 4.6.3   真机: N97 5800

小结:详解Qt For Symbian工程文件的一些特异写法,对于已经运行成功的实例,你可能更有信心去解决,希望本篇本章对你有所帮助!

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...