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