Qt WinCE安裝 開發及部署全解

2021-08-25 00:21:47 字數 4118 閱讀 3351

花費了三天時間,周轉各大**,終於在今天將自己的第乙個qt程式在「小i(samsung i718+)」上跑了起來!

一、qt嵌入式環境的搭建

a)

b) 還有乙個是同步的軟體microsoft activesync4.5中文簡體版。

------------------------------------------安----裝----------------------------------

e) 首先安裝vs2005,很簡單,按照嚮導來,在自定義安裝中務必選擇「智慧型裝置開發」。

f) 關於microsoft activesync4.5的安裝更是「straightforward」。在此不再多說!

g) 然後,安裝windows mobile或是其它版本的sdk,可以用自定義的sdk!簡單

h) 比較麻煩的就是qt-embedded-wince的安裝。參照下面的步驟:①、解壓,將解壓後的資料夾放到乙個不含空格的路徑中,如我的:f:/penguinx/qt_wince,qt_wince即為此資料夾。然後設定環境變數:右鍵「我的電腦」->「屬性」->點「高階」標籤->「環境變數」選項->在"path"中新增路徑「f:/penguinx/qt_wince / bin」。ok!②編譯前戲。首先,配置編譯選項,進行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下),執行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

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: 模組計算機型別「x

86」與目標

計算機型別「thumb」衝突

nmake : fatal error u1077: 「"d:/program files/microsoft visual studio 8/vc/ce/b

in/x86_arm/link.exe"」: 返回**「0x

458」

這種錯誤搞的我很無奈,我不執行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

apache php 安裝及部署

工作需要,讓我盡快部署乙個php專案。趕緊google,按部就班。1.安裝apache 開啟瀏覽器,輸入 看到 it works 說明安裝成功2.安裝php cp p php.ini.dist usr local php php.ini3.配置 php paths and directories i...

Lua cjson安裝及部署

在安裝lua cjson時在網上查詢了很多文章,關於具體的安裝方法眾說紛紜,主要原因是因為lua cjson在安裝時需要進行配置的更改,以下是經過實操得到的具體安裝步驟。tar zxvf lua cjson 2.1.0.tar.gz cd lua cjson 2.1.0 修改配置檔案 修改lua版本...

rsync安裝及部署

一。伺服器端 1.yum y install rsync xinetd 2.vi etc xinetd.d rsync 將yes 修改為no ipv6修改為ipv4 3.vi etc rsyncd.conf 新建檔案 uid root gid root use chroot no max conne...