在最近覺得QT越來越好用了,都是同一QT代碼,能很快的從windows XP移植到windows mobile
我先說明一下我已經編譯好的QT版本:
D:\Qt\mobile\4.4.3
編譯選項:
-platform
win32-msvc2008
-xplatform
wincewm60professional-msvc2008
-fast
D:\Qt\mobile\4.6.2
編譯選項:
-platform
win32-msvc2008
-xplatform
wincewm60professional-msvc2008
-fast
D:\Qt\win32\4.4.3
編譯選項:
-platform
win32-msvc2008
-debug-and-release
D:\Qt\win32\4.6.2
編譯選項:
-platform
win32-msvc2008
-debug-and-release
1. 首先我們將這四個路徑添加到VS中,工具->選項->Qt->Builds->Add
D:\Qt\mobile\4.4.3=>命名為4.4.3_mobile
D:\Qt\mobile\4.6.2=>命名為4.6.2_mobile
D:\Qt\win32\4.4.3=>命名為4.4.3_win32
D:\Qt\win32\4.6.3=>命名為4.6.2_win32
以前感覺這里的設置對VS沒影響,現在才發現它們是有影響的,它們就是設置環境變量QTDIR的值,
這個值在“解決方案管理器”中單擊你的項目名稱,然后在VS右邊的“屬性框”Version中可以修改
(修改后要重新生成解決方案),如圖:
2. 修改這個值還沒有可以移植到windows mobile下。在生成->配置管理器;在“活動解決方案平臺”
的下拉框中選擇“新建”,在彈出的對話框中的“鍵入或選擇新平臺”選擇“Windows Mobile 6 Professional SDK (ARMV4I)”,
選擇從“win32”平臺復制設置,點確定即可。那時在工具欄中的Debug旁邊就有一個Windows Mobile 6 Professional SDK (ARMV4I)。
3. 然后在“解決方案管理器”中右擊項目,選擇屬性。在彈出的對話框中我們只需要添加兩個東西
就夠了。(記得“配置”設置“活動Debug”,平臺選擇“Windows Mobile 6 Professional SDK (ARMV4I)”;
點C/C++->預處理器,在“預處理器定義”中全部替換為以下內容:
_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;DEBUG;_WINDOWS;
$(ARCHFAM);$(_ARCHFAM_);_UNICODE;UNICODE;POCKETPC2003_UI_MODEL;QT_THREAD_SUPPORT;
QT_CORE_LIB;QT_GUI_LIB;QT_XML_LIB
(中間沒有回車,只有一行)
在鏈接器->命令行->符加選項中添加如下內容:
/subsystem:windowsce,5.00
最后在屬性框中修改成mobile用的QT版本,重新生成解決方案即可。
(注:因為QTDIR值隨著QT版本的改變而改變,故頭文件與LIB的路徑不用再修改)
如果有些代碼是用了
#ifdef isMobile
#endif
包圍的,我們可以在項目屬性中C/C++->命令行->附加選項中加入:/D "isMobile"
記得這是在平臺Windows Mobile 6 Professional SDK (ARMV4I)中。