嵌入式Linux下Qt/Embedded的應(yīng)用
用戶應(yīng)用程序只需要調(diào)用FBIOXXXX來操作LCD硬件。
嵌入式圖形界面GUI的移植
交叉編譯和移植Qt/Embedded
文中采用了Trolltech公司的Qt/Embedded2.3.6自由版作為目標(biāo)板Linux圖形界面庫。在交叉編譯前需要先修改Qt /Embedded的配置文件,將GCC,G++編譯器和鏈接器設(shè)置為前文編譯安裝的交叉編譯工具鏈。接著是設(shè)置環(huán)境變量,如下:
exportPATH=/opt/host/armv4l/bin:$PATH
exportQTDIR=$PWD
exportQTEDIR=$QTDIR
exportLD-LIBRARY-PATH=$QTDIR/lib:$LD-LI2
BRARY-PATH
然后配置Qt/Embedded將Qt/Embedded配置為動(dòng)態(tài)鏈接庫,并支持JPEG,JIF圖像格式,像素位數(shù)支持4,8,16,24。
./configure-xplatformlinux-arm-g++-shared-system-jpeg-gif-qvfb-depths4,8,16,24
最后交叉編譯后,qt-2.3.6lib路徑下的生成EmbeddedQt的3個(gè)動(dòng)態(tài)SO庫,分別是 libqte.so.2,libqte.so.2.3,libqte.so.2.3.6,將這些庫文件拷貝到目標(biāo)板文件系統(tǒng)中(/s3c2410pro /root/usr/qt/lib)。與此同時(shí)在qt-2.3.6examples生成了Qt/Embedded的一些示例應(yīng)用程序 (/s3c2410pro/root/usr/qt/examples/)??梢詫⒁徊糠只蛉砍绦蚩截惖侥繕?biāo)板文件系統(tǒng)。
這樣當(dāng)開發(fā)板啟動(dòng)以后,就可以在嵌入式系統(tǒng)下運(yùn)行基于Qt/Embedded的應(yīng)用程序了。
交叉編譯和移植Qtopia
消費(fèi)電子設(shè)備而開發(fā)的綜合應(yīng)用平臺,它是基于Qt/Em2bedded圖形界面庫。Qtopia包括了窗口操作系統(tǒng)、游戲和多媒體、輸入法、工作輔助應(yīng)用程序等特性。
同Qt/Embedded交叉編譯一樣,首先需要先修改Qtopia的配置文件,將GCC,G++編譯器和鏈接器設(shè)置為 前文編譯安裝的交叉編譯工具鏈。
接著是設(shè)置Qtopia環(huán)境變量,因?yàn)镼topia是基于Qt/Embedded庫的,因此需要方才交叉編譯的動(dòng)態(tài)鏈接庫的支持,需要同時(shí)設(shè)置Qt的環(huán)境變量。
exportQTDIR=/linuette/host/Qt/embedded/qt-2.3.6
exportLD-LIBRARY-PATH=/usr/lib:/lib:$QTDIR/lib:
$LD-LIBRARY-PATH
exportQPEDIR=/linuette/host/Qt/qpe/qpe-1.6.2
exportPATH=/opt/host/armv4l/bin:$PATH
exportTMAKEPATH=/usr/lib/tmake/lib/qws/linux-linuette-g++
最后配置Qtopia將Qtopia配置為動(dòng)態(tài)SO庫形式:
./configure-xplatformlinux-arm-g++-shared
編譯make
此時(shí)會(huì)出現(xiàn)/bin/uic:Commandnotfound的錯(cuò)誤,這是因?yàn)闆]有指定Qt/Embedded的uic工具,uic的工具是Qt專門用來將ui(ui文件是Qt圖形界面文件,支持所見即所得)文件生成.h和.cpp文件的。這里可以直接使用Qt/X11的uic工具,方法如下:在/qt- 2.3.6/bin目錄下建立到RedHat9.0自帶的QtX11的uic工具的鏈接。可以使用RedHat9.0下Qtdesigner(界面與 Delphi相類似)的應(yīng)用程序開發(fā)嵌入式系統(tǒng)下的所見即所得的圖形界面應(yīng)用程序。
編譯通過后會(huì)在Qt/Embedded的路徑/qt-2.3.6/lib下生成libqpe1.6.2的動(dòng)態(tài)鏈接庫,同樣將這些庫文件拷貝到目標(biāo)板文件系統(tǒng)中(/s3c2410pro/root/usr/qt/lib)。在目標(biāo)板文件系統(tǒng)目錄/s3c2410pro/root/usr下新建qpe文件夾,將/qpe-1.6.2/apps,/qpe-1.6.2/pics,/qpe-1.6.2/docs,/qpe-1.6.2/sounds復(fù)制到該文件夾下。最后修改目標(biāo)板Linux的/profile文件,設(shè)置Qtopia的環(huán)境變量:
exportPATH=/usr/qpe/bin:$PATH
exportQWS-SIZE=6403480
exportPATH=/usr/qpe/bin:$PATH
開發(fā)板啟動(dòng)后就會(huì)運(yùn)行Qtopia圖形界面了。
總結(jié)
目前越來越多嵌入式系統(tǒng)要求圖形顯示界面,特別是在一些工業(yè)控制領(lǐng)域,嵌入式Linux系統(tǒng)的應(yīng)用也逐漸增多。Qt/Embedded延續(xù)了Qt在桌面系統(tǒng)的所有功能,豐富的API接口和基于組件的編程模型使得嵌入式Linux系統(tǒng)中的應(yīng)用程序開發(fā)更加便捷。由于Qt/Embedded本身面向高端的手持設(shè)備和移動(dòng)設(shè)備,將成為未來嵌入式系統(tǒng)的主流GUI。
linux相關(guān)文章:linux教程
c++相關(guān)文章:c++教程
評論