基于ARM LINUX的嵌入式GUI的研究和移植
QT的移植
QT的編譯步驟比較復(fù)雜。Qtopia的根目錄下有README.html文件介紹了PC機(jī)上編譯的步驟及參數(shù)。因此,本文主要描述在編譯成以ARM為目標(biāo)平臺(tái)時(shí)有所區(qū)別的幾個(gè)步驟及參數(shù)。下載Qt/Embedded、Qt/X11和Qtopia三個(gè)包并分別解壓。這三者的編譯配置都是通過執(zhí)行相應(yīng)根目錄下的configure文件并傳遞相關(guān)參數(shù)來實(shí)現(xiàn),另外在Qtopia目錄下src/qt/qconfig-qpe.h文件中要定義一些相關(guān)的宏,這樣在編譯時(shí)編譯器會(huì)根據(jù)所定義的宏選擇需要的代碼來進(jìn)行編譯。比如,目標(biāo)系統(tǒng)所使用的觸摸屏實(shí)現(xiàn)方式與IPAQ類似,若要使QT將所支持的代碼編譯進(jìn)來,則需在qt2config-qpe.h中定義宏QT-QWS-IPAQ。首先,我們在執(zhí)行configure對QT/Embedded進(jìn)行配置時(shí),傳遞了三個(gè)參數(shù)-xplatformlinux-arm-g++、-qconfigqpe和-no-qvfb。其中第一個(gè)參數(shù)表示,編譯后二進(jìn)制文件執(zhí)行時(shí)所在的目標(biāo)平臺(tái)類型;第二個(gè)參數(shù)告訴編譯器配置頭文件是在src/tools/目錄下叫做qconfig-qpe.h,通常這個(gè)文件就是Qtopia目錄下src/qt/qconfig-qpe.h的一個(gè)拷貝;第三個(gè)參數(shù)表示在編譯時(shí)不需要編譯qvfb工具,當(dāng)目標(biāo)系統(tǒng)不支持Framebuffer時(shí),在執(zhí)行啟動(dòng)Qtopia之前先通過執(zhí)行qvfb來產(chǎn)生一個(gè)虛擬的Framebuffer,這時(shí)再啟動(dòng)Qtopia相應(yīng)的內(nèi)容就會(huì)顯示在qvfb上。在對Qtopia進(jìn)行配置時(shí),只傳遞了一個(gè)參數(shù):-platformarm-linux-g++,表示目標(biāo)平臺(tái)是ARM平臺(tái)。當(dāng)然在上述配置過程中還可以使用其它一些參數(shù),這些參數(shù)可以通過傳遞-help參數(shù)給configure來查詢。在配置并編譯完之后,將Qtopia目錄下的運(yùn)行時(shí)相關(guān)目錄全部打包并下載到目標(biāo)系統(tǒng)上,設(shè)置了相應(yīng)的環(huán)境變量(比如QPEDIR、QTDIR和LD-LIBRARY-PATH等)后,就可以執(zhí)行。當(dāng)然目標(biāo)系統(tǒng)上的特殊硬件的支持需要通過修改QT/Embedded下的對應(yīng)源程序來完成。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)linux相關(guān)文章:linux教程
評論