詳解Qt For Symbian工程文件中一些特異寫法
本文講解的是Qt For Symbian工程文件的一些特異寫法,使用到了Qt庫的內(nèi)容,想要了解更多的話,請看本文的講解。
symbian本身的工程文件不具有cross-platform特性,都是一些自己唯一的定義文件,像:*.mmp,*.pkg文件。而Qt得工程文件為*.pro。如何實(shí)現(xiàn)*.pro到*.mmp ,*.pkg文件的映射則值得總結(jié)。
1、添加庫
對于添加庫,無論是靜態(tài)還是動態(tài)庫,都需做兩步:先是聲名一下,其后是拷貝。二者僅僅是聲名的方式不一樣。
2、聲名:
(1)動態(tài)庫
- symbian:LIBS +=
- MMP_RULES += "LIBRARY fbscli.lib"
(這里我加的是名為fbscli的動態(tài)庫)
(2)靜態(tài)庫
- symbian {
- LIBS += -lIsolated.lib \
- }
(這里我加的是名為Isolated的靜態(tài)庫)
3、拷貝
拷貝分兩部分:一部分是針對編譯進(jìn)行的拷貝,一部分則是針對真機(jī)的拷貝。 編譯器在編譯時:需要找到lib文件,而其查找的路徑是epoc32\release下的子文件夾。 當(dāng)然了:你要在模擬器上跑,還需要再拷貝到模擬器對應(yīng)的文件夾下。
- symbian {
- BLD_INF_RULES.prj_exports += \
- ".\bin\HWR\Winscw\NRC.dll \epoc32\release\winscw\udeb\NRC.dll" \
- ".\bin\HWR\Winscw\NRC.lib \epoc32\release\winscw\udeb\NRC.lib" \
- ".\bin\HWR\Armv5\NRC.dll \epoc32\release\Armv5\urel\NRC.dll" \
- ".\bin\HWR\Armv5\NRC.lib \epoc32\release\Armv5\lib\NRC.lib" \
- }
winscw文件夾對應(yīng)emulator , ArmV5對應(yīng)真機(jī)。
//pkg文件,該文件在symbian中是用于打包的文件。在這里作用就是:拷貝對應(yīng)文件到真機(jī)上。
//注意:里邊的OCRDll這個名稱是可以隨便指定的,只要最后使用DEPLOYMENT += 將其加進(jìn)去就可以。
- symbian: {
- OCRDll.sources =./bin/HWR/Armv5/MMI_BluetoothEngine.dll
- OCRDll.path = \sys\bin
- DEPLOYMENT += OCRDll
- }
4、區(qū)分真機(jī)和模擬器
對于一些代碼部分,例如:通訊功能,攝像頭模塊等。其實(shí)無法運(yùn)行在模擬器上的,只能運(yùn)行在真機(jī)上。所以有時候:對于一些這樣的代碼模塊,我們最好用Macro宏來將其包起來,只在編譯真機(jī)版本時:才編譯這部分;而在編譯模擬器版本時:卻不編譯這部分。對于這個宏,我們需要在pro文件中聲明。(亦即:聲明一個只針對真機(jī)的宏)。
- symbian {
- MMP_RULES += $$LITERAL_HASH"ifdef MARM_ARMV5"
- MMP_RULES += "MACRO REAL_PHONE"
- MMP_RULES += $$LITERAL_HASH"endif"
- }
(這里假設(shè)該宏名為REAL_PHONE )
補(bǔ)充:當(dāng)然還有很多特異的寫法,大家可以查看我上傳資源中的Qt for symbian這個資源(http://download.csdn.net/source/2447574)。這是官方給的一個指導(dǎo)性文件,除去上邊這些外,別的里邊介紹的也比較詳細(xì)。
上邊這兩個我都實(shí)際使用過,沒有問題。測試環(huán)境:Qt 4.5.0 Qt 4.6.2 Qt 4.6.3 真機(jī): N97 5800
小結(jié):詳解Qt For Symbian工程文件的一些特異寫法,對于已經(jīng)運(yùn)行成功的實(shí)例,你可能更有信心去解決,希望本篇本章對你有所幫助!