張明華 菏澤學(xué)院物理與電子工程系 山東菏澤 274000
?
基于Linux操作系統(tǒng)的Qt開發(fā)平臺的搭建
張明華 菏澤學(xué)院物理與電子工程系 山東菏澤 274000
【文章摘要】
隨著嵌入式技術(shù)的高速發(fā)展,為了讓用戶能夠更加直觀方便的使用各種嵌入式系統(tǒng),系統(tǒng)必須提供一種應(yīng)用于特殊場合的人機(jī)交互接口,也就是圖形用戶界面(GUI,Graphics User Interface)。本文介紹了一種跨平臺的圖形用戶界面應(yīng)用程序的開發(fā)?;贏RM硬件平臺與Qt/Embedded,重點(diǎn)闡述了Qt開發(fā)環(huán)境的搭建問題。
【關(guān)鍵詞】
用戶界面;Qt/Embedded;平臺搭建
圖形用戶界面作為人機(jī)交互界面的主流,廣泛應(yīng)用于各種類型計(jì)算機(jī)的系統(tǒng)軟件和應(yīng)用軟件。而嵌入式系統(tǒng)用戶界面和用戶體驗(yàn)已經(jīng)成為決定其能否被用戶接受、市場能否成功的重要因素。
Qt由挪威TrollTech公司出品,它是面向嵌入式系統(tǒng)的Qt版本,其類庫完全采用C++封裝,許多基于Qt的X Window程序可以非常方便地移植到Qt/Embedded上,與X11版本的Qt在最大程度上接口兼容。Qt/Embedded可以運(yùn)行在多種不同架構(gòu)處理器所部署的嵌入式Linux系統(tǒng)上,Qt/ Embedded憑借其豐富的控件資源和良好的可移植性,越來越被廣泛地應(yīng)用。
一般來說,Qt/Embedded程序的發(fā)布都是先在裝有Linux操作系統(tǒng)的PC上來完成開發(fā),然后再將其發(fā)布到嵌入式Linux系統(tǒng)下。在一臺裝有Linux操作系統(tǒng)的PC機(jī)上建立Qt/Embedded開發(fā)環(huán)境,大致分為以下幾步:①Q(mào)t Creator集成開發(fā)環(huán)境的搭建;②arm-linux-gcc交叉編譯環(huán)境的搭建;③觸摸屏校準(zhǔn)庫tslib的編譯安裝;④搭建Qt/ Embedded開發(fā)環(huán)境。
(1)安裝gcc/g++編譯器。在Qt Creator安裝過程中,會用到gcc/g++編譯器,因此在安裝Qt Creator之前應(yīng)首先安裝gcc/g++編譯器。
$sudo apt-get install gcc g++
(2)安裝Qt Creator。安裝Qt Creator時(shí),apt-get包管理系統(tǒng)會自動安裝dev-tools、designer、doc、qtconfig、 qdevelop等軟件。
$sudo apt-get install qtcreator
交叉編譯是指在一個(gè)平臺上生成可以在另一個(gè)平臺上執(zhí)行的代碼。arm-linux-gcc作為基于ARM平臺的編譯器,其編譯出來的程序可以在ARM平臺上直接運(yùn)行,搭建過程如下。
(1)解壓縮arm-linux-gcc-3.4.5.tar. gz。
$tar zxvf arm-linux-gcc-3.4.5.tar.gz
(2)將arm-linux-gcc加入系統(tǒng)命令路徑。編輯“/etc/profile”文件,添加將armlinux-gcc存儲路徑追加賦值給系統(tǒng)環(huán)境變量PATH的命令,實(shí)現(xiàn)開機(jī)自動加載arm-linuxgcc命令的要求。
PATH=$PATH:/usr/arm-linuxgcc/3.4.5/bin
其中,/usr/arm-linux-gcc是交叉編譯器的安裝目錄。另外,如果是需要立即使用此命令,需要在終端內(nèi)執(zhí)行如下命令。
$PATH=/usr/arm-linux-gcc/3.4.5/ bin:$PATH
嵌入式設(shè)備中觸摸屏的使用非常廣泛,但是觸摸屏的坐標(biāo)和顯示屏的坐標(biāo)是不對稱的,需要檢驗(yàn)。這里,本文校驗(yàn)觸摸屏使用的軟件是tslib,它能夠?yàn)橛|摸屏驅(qū)動獲得的采樣提供濾波、去抖和校準(zhǔn)的功能。編譯安裝觸摸屏校準(zhǔn)庫的具體步驟如下。
(1)解壓縮tslib-1.3.tar.bz2。使用tar命令將下載的壓縮文件解壓。
$sudo tar jxvf tslib-1.3.tar.bz2
運(yùn)行tslib-1.3目錄中的autogen.sh文件,已生成configure文件。
$./autogen.sh
操作成功后,將會輸出相應(yīng)的提示信息,可通過ls命令查看目錄下是否生成了configure文件。
(2)制定交叉編譯器及配置安裝信息。tslib編譯安裝之前,需要指定其使用armlinux-gcc交叉編譯器進(jìn)行編譯,此外還需要對tslib安裝進(jìn)行相應(yīng)的配置,并需要檢查當(dāng)前的環(huán)境是否滿足安裝的條件。
$CC=arm-linuc-gcc
$export PLUGIN_DIR=$PWD/plugins
$./configure –host=arm-linux –prefix=$PWD/../tslib –enableinputapi=no
(3)編譯安裝。tslib的編譯安裝步驟遵循常規(guī)軟件的編譯安裝步驟,只須在終端執(zhí)行以下命令。
$sudo make
$sudo make install
Qt/Embedded采用編譯安裝的方式,安裝步驟如下。
(1)將qt-embedded-linuxopensource-src-4.5.2.tar.gz解壓縮到/opt目錄下。
(2)運(yùn)行configure程序?qū)Π惭b進(jìn)行相應(yīng)的配置,以及檢查當(dāng)前的環(huán)境是否滿足安裝的條件,該命令的選項(xiàng)較多。
$./configure -release -shared -fast -pch -no-qt3support -qt-sql-sqlite -nolibtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -xplatform qws/ linux-arm-g++ -embedded arm -depths 4,8,16,32 -little-endian -qt-kbd-usb -noopenssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -noxrender -no-xkb -no-sm -no-xinerama -no-xshape -no-separate-debug-info -noqvfb -qt-gfx-linuxfb -no-gfx-qvfb -nokbd-qvfb -no-mouse-qvfb -no-webkit -confirm-license -qt-mouse-tslib -I/Opt/ Tslib/3.4.5/include -L/Opt/Tslib/3.4.5
(3)在Qt/Embedded安裝配置信息無報(bào)錯(cuò)的情況下,便可繼續(xù)進(jìn)行Qt/Embedded的編譯安裝,其步驟遵循常規(guī)軟件的安裝編譯步驟。
本文闡述了如何利用Qt在Linux操作系統(tǒng)下搭建一個(gè)嵌入式的GUI 開發(fā)平臺。對于嵌入式圖形用戶界面開發(fā)來說,雖然應(yīng)用程序的代碼編寫直接關(guān)系到一個(gè)工程的成功與否,但在編寫代碼之前,開發(fā)環(huán)境的搭建往往更為重要,只有在有了一個(gè)完好的開發(fā)平臺以后,才可以真正開始應(yīng)用程序的開發(fā)。
【參考文獻(xiàn)】
[1]茍軍年.ARM Linux 嵌入式軟件開發(fā)平臺的搭建[J].計(jì)算機(jī)時(shí)代,2010.
[2]林繼民,吳怡,林蕭.基于Linux 嵌入式系統(tǒng)開發(fā)平臺的構(gòu)建及應(yīng)用[J].嵌入式技術(shù),2010.
張明華(1985-),男,山東菏澤人,助教,碩士
【作者簡介】
基金項(xiàng)目:菏澤學(xué)院科學(xué)研究基金(XY14B003).