Qt Windows CE安裝、開發及部署全解
本文講解的是Qt Windows CE安裝、開發及部署全解,對于Qt大家都已經很熟悉了,那么讓我們直接看下面的內容。
Qt-WinCE全解
一、Qt 嵌入式環境的搭建
首先,下載Qt的嵌入式開發包qt-embedded-wince-opensource-src-4.4.0.zip
然后,下載VS2005。
最后,下載一個嵌入式開發的SDK,如Windows Mobile 5.0 Pocket PC SDK,可以在微軟的官方網站上下載到!
還有一個是同步的軟件 Microsoft ActiveSync4.5中文簡體版。
安裝
1、首先安裝VS2005,很簡單,按照向導來,在自定義安裝中務必選擇“智能設備開發”。
2、關于Microsoft ActiveSync4.5的安裝更是“straightforward”。在此不再多說!
3、然后,安裝Windows Mobile或是其它版本的SDK,可以用自定義的SDK!簡單
4、比較麻煩的就是qt-embedded-wince的安裝。參照下面的步驟:
(1)解壓,將解壓后的文件夾放到一個不含空格的路徑中,如我的:f:\penguinx\qt_wince,qt_wince即為此文件夾。然后設置環境變量:右鍵“我的電腦”->“屬性”->點“高級”標簽->“環境變量”選項->在"PATH"中添加路徑“f:\penguinx\qt_wince \ bin”。
(2)編譯前戲。首先,配置編譯選項,進行VS2005的命令行中,進入解壓的文件夾,然后執行如下:configure -platform win32-msvc2005 -xplatform wince50standard-armv4i-msvc2005可以根據自己的板子及手機配置來選擇其它的嵌入式的xplatfrom。這個過程可能需要十幾分鐘。執行完后,再次在VS2005中設置臨時的環境變量,編譯時要用到:如下:
- set INCLUDE=D:\Program Files\Microsoft Visual Studio 8\VC\ce\include;D:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket
- PC SDK\Include\Armv4i
- set LIB=D:\Program Files\Microsoft Visual Studio 8\VC\ce\lib\armv4i;D:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket
- PC SDK\Lib\ARMV4I
- set PATH=D:\Program Files\Microsoft Visual Studio 8\VC\ce\bin\x86_arm;%PATH%
在此我期望能根據自己的軟件安裝情況將上面的目錄“拿來主義”一下。設 置完后,執行nmake,過兩、三個鐘頭后,你就可以Enjoy your journey.
最后,執行nmake,安裝完畢!我的Qt-WinCE安裝在 f:\penguinx\qt_wince
二、編譯Qt-WinCE程序
命令行法(不用IDE):
首先、用VS2005命令行進入要編譯的程序目錄(此目錄最好就在安裝目錄f:\penguinx\qt_wince下),執行< f:\penguinx\qt_wince >bin\qmake.exe –project –o example.pro 其中,Install Qt Path為你的Qt-WinCE的安裝目錄。這個時候,可以產生example.pro文件。
然后、就是產生Makefile的時候:在VS2005命令行下輸入:
f:\penguinx\qt_wince\bin\qmake -spec ..\mkspecs\wince50standard-armv4i-msvc2005 -win32 -o Makefile example.pro 此時,恭喜你,Makefile文件已經產生。
最后,就是用nmake來編譯和鏈接程序了。先將安裝時的環境變量(三個set)在當前VS2005命令行下重新執行一遍。否則會出現如下錯誤:
cl: 命令行 warning D9002 :忽略未知選項“-QRarch4T”
cl: 命令行 warning D9002 :忽略未知選項“-QRinterwork-return”
- main.cpp
- mainwindow.cpp
- f:\penguinx\qt_wince\include\qtgui\../../src/gui/widgets/qmenu.h(144) : error C2
146: 語法錯誤 : 缺少“;”(在標識符“wceMenu”的前面)
- f:\penguinx\qt_wince\include\qtgui\../../src/gui/widgets/qmenu.h(144) : error C4
#p#
430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
- f:\penguinx\qt_wince\include\qtgui\../../src/gui/widgets/qmenu.h(144) : error C4
430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
- f:\penguinx\qt_wince\include\qtgui\../../src/gui/widgets/qmenu.h(144) : warning
C4183: “wceMenu”: 缺少返回類型;假定為返回“int”的成員函數。
然后,執行nmake,看著一行的白銀流失完后,就是金子(你的exe文件)了。
注意:在執行nmake的時候,可能會看到如下錯誤信息:
- link /LIBPATH:"f:\penguinx\qt_wince\lib" /LIBPATH:"f:\penguinx\qt_wince\
- lib" /NOLOGO /NODEFAULTLIB:OLDNAMES.LIB /DEBUG /SUBSYSTEM:WINDOWSCE,5.00 /MACHIN
- E:THUMB /OUT:debug\node.exe @C:\DOCUME~1\User\LOCALS~1\Temp\nm6B3.tmp
- tmp\obj\debug_shared\main.obj : fatal error LNK1112: 模塊計算機類型“X86”與目標
計算機類型“THUMB”沖突
- NMAKE : fatal error U1077: “"D:\Program Files\Microsoft Visual Studio 8\VC\ce\b
- in\x86_arm\link.EXE"”: 返回代碼“0x458”
這種錯誤搞的我很無奈,我不執行nmake,直接執行nmake release就沒有這種錯誤?這種錯誤可能是因為“環境變量”中“PATH”中設置了“f:\penguinx\qt_wince\bin”。在我把這個變量去掉后,重新打開VS2005命令行(因為得重新讀取PATH變量)。然后按照上面的步驟做下來,最后用nmake重新執行一遍,很好很流暢!
三、Qt –WinCE程序的部署(非打包)
可以直接把上面開發的*.exe文件和其需要的*.dll一起CP到一個目錄中,這些dll一般有:
- D:\Program Files\Microsoft Visual Studio 8\VC\ce\Dll\armv4i\ msvcr80.dll
- F:\penguinx\wince_vs2005\lib\ QtCore4.dll
- F:\penguinx\wince_vs2005\lib\QtGui4.dll
其它的根據自己項目的需要CP下,就行了。
如果想將程序部署成*.cab形式的,在上面的“解決方案”中,點“文件”->“新建”->“項目”->點“其它”,其中有關于智能設備部署的,就它了(我在實驗室機子上開發的,回來寫手記,所以具體的操作記的不是非常清楚,將就!)。根據向導建立后,在新建的cab項目中點“屬性”,最后,生成就行了。CP到板子就可以運行了。
注意:所有的CP都是用ActiveSync軟件通過USB傳輸的,當然可以用其它傳輸手段,最終能上板子就行。
- -Zm200 -w34100 -w34189 -Zm200 -w34100 -w34189 -w34100 -w34189
注意在WinCE部署時的版本,如果設備上的WinCE版本比開發用的版本低的話,將顯示“****, 需要更新的Windows版本”云云。
- /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB
- /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB
小結:Qt Windows CE安裝、開發及部署全解的內容介紹完了,不知道你的環境安裝、部署好了沒有,感謝您參考本文章,有什么需要,請留言。