花費了三天時間,周轉(zhuǎn)各大網(wǎng)站,終于在今天將自己的第
周轉(zhuǎn)自己花費一個Qt程序在“小I(SAMSUNG i718 )”上跑了起來!
一、Qt 嵌入式環(huán)境的搭建
a) 首先,下載Qt的嵌入式開發(fā)包qt-embedded-wince-opensource-src-4.4opensourc embed 下載.0.zip
b) 然后,下載VS2005。
c) 最后,下載一個嵌入式開發(fā)的SDK,如Windows Mobile 5.0window mobil 下載 Pocket PC SDK,可以在微軟的官方網(wǎng)站上下載到!
d) 還有一個是同步的軟件 Microsoft ActiveSync4.5中文簡體版。activesync microsoft 簡體
------------------------------------------安----裝----------------------------------
e) 首先安裝VS2005,很簡單,按照向?qū)恚谧远?a class=dockw id=dock oncg=dockclick(this)>2005 安裝向?qū)?/a>義安裝中務(wù)必選擇“智能設(shè)備開發(fā)”。
f) 關(guān)于Microsoft ActiveSync4.5的安裝更是“straightforward”。在此不再activesync microsoft 關(guān)于多說!
g) 然后,安裝Windows Mobile或是其它版本的SDK,可以用自window mobil 或是定義的SDK!簡單
h) 比較麻煩的就是qt-embedded-wince的安裝。參照下面的步embed 下面參照驟:①、解壓,將解壓后的文件夾放到一個不含空格的路文件夾空格一個徑中,如我的:f:\penguinx\qt_wince,qt_wince即為此文件夾。然后設(shè)置penguinx 文件夾設(shè)置環(huán)境變量:右鍵“我的電腦”->“屬性”->點“高級環(huán)境變量電腦”標簽->“環(huán)境變量”選項->在"PATH"中添加路徑“f:\penguinxpenguinx 環(huán)境路徑\qt_wince \ bin”。OK!②編譯前戲。首先,配置編譯選項,進行編譯配置進行VS2005的命令行中,進入解壓的文件夾,然后執(zhí)行如下:configureconfigur 文件夾命令 -platform win32-msvc2005 -xplatform wince50standard-armv4i-msvc2005可以根據(jù)自己的板子及手xplatform platform standard機配置來選擇其它的嵌入式的xplatfrom。這個過程可能需要十幾xplatfrom 需要配置分鐘。執(zhí)行完后,再次在VS2005中設(shè)置臨時的環(huán)境變量,編環(huán)境 2005 設(shè)置譯時要用到:如下:
set INCLUDE=D:\Program Files\Microsoft Visual Studio 8\VC\ce\include;D:\Program Files\Windows CE Tools\wce500\Windows Mobilemicrosoft program studio 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\wcemicrosoft program studio500\Windows Mobile 5.0 Pocket PC SDK\Lib\ARMV4I
set PATH=D:\Program Files\Microsoft Visual Studio 8\VC\ce\bin\x86_arm;%PATH%
在此我期望能根據(jù)自己的軟件安裝情況將
軟件自己期望上面的目錄“拿來主義”一下。設(shè) 置完后,執(zhí)行nmake,過兩
拿來主義 nmake 執(zhí)行、三個鐘頭后,你就可以Enjoy your journey.
最后,執(zhí)行nmake,安裝完畢!我的Qt-WinCE安裝在 f:\penguinx\qt_wince
二、編譯Qt-WinCE程序
命令行法(不用IDE):
首先、用VS2005命令行進入要編譯的程序目錄(此目錄最好就命令編譯進入在安裝目錄f:\penguinx\qt_wince下),執(zhí)行< f:\penguinx\qt_wince >bin\qmake.exe –project &ndashpenguinx project qmake;o example.pro 其中,Install Qt Path為你的Qt-WinCE的安裝目錄。這個時候instal exampl 安裝,可以產(chǎn)生example.pro文件。
然后、就是產(chǎn)生Makefile的時候:在VS2005命令行下輸入:
f:\penguinx\qt_wince\bin\qmake -spec ..\mkspecs\wince50standard-armv4i-msvc2005 -win32 -o Makefile example.pro 此時,standard penguinx makefil恭喜你,Makefile文件已經(jīng)產(chǎn)生。
最后,就是用nmake來編譯和鏈接程序了。先將安裝時nmake 編譯最后的環(huán)境變量(三個set)在當前VS2005命令行下重新執(zhí)行一遍。否環(huán)境當前 2005則會出現(xiàn)如下錯誤:
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
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”的成員函數(shù)wcemenu 4183 函數(shù)。
然后,執(zhí)行nmake,看著一行的白銀流失完后,就是金子(你的nmake 金子白銀exe文件)了。
注意:在執(zhí)行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”
這種錯誤搞的我很無奈,我不執(zhí)行nmake,直接執(zhí)行nmakenmake 錯誤這種 release就沒有這種錯誤?這種錯誤可能是因為“環(huán)境變量”中releas 環(huán)境錯誤“PATH”中設(shè)置了“f:\penguinx\qt_wince\bin”。在我把這個變量去掉后penguinx 去掉設(shè)置,重新打開VS2005命令行(因為得重新讀取PATH變量)。然后按照讀取命令重新上面的步驟做下來,最后用nmake重新執(zhí)行一遍,很好很流暢nmake 步驟下來!
三、Qt –WinCE程序的部署(非打包)
可以直接把上面開發(fā)的*.exe文件和其需要的*.dll一起CP需要開發(fā)可以到一個目錄中,這些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
其它的根據(jù)自己項目的需要CP下,就行了。
如果想將程序部署成*.cab形式的,在上面的“解決方形式部署解決案”中,點“文件”->“新建”->“項目”->點&ldquoldquo 項目文件;其它”,其中有關(guān)于智能設(shè)備部署的,就它了(我在實驗室實驗室關(guān)于部署機子上開發(fā)的,回來寫手記,所以具體的操作記的不是非操作開發(fā)機子常清楚,將就!)。根據(jù)向?qū)Ы⒑?,在新建的cab項目中點建立新建根據(jù)“屬性”,最后,生成就行了。CP到板子就可以運行了。運行最后可以
注意:所有的CP都是用ActiveSync軟件通過USB傳輸?shù)模斎豢梢杂?a class=dockw id=dock oncg=dockclick(this)>activesync 注意軟件其它傳輸手段,最終能上板子就行。
-Zm200 -w34100 -w34189 -Zm200 -w34100 -w34189 -w34100 -w34189
注意在WinCE部署時的版本,如果設(shè)備上的WinCE版本比開發(fā)用的開發(fā)注意部署版本低的話,將顯示“****, 需要更新的Windows版本”云云。
/SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB
/SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB