一.開發環境
(1)red hat enterprise linux 5
(2) linux kernel 2.6.18
(3) (qt開發包) qt-x11-2.3.2.tar.gz
(4) (qt/embedded開發包) qt-embedded-2.3.10-free.tar.gz
(5) (自動建立makefile檔案的工具) tmake-1.13.tar.gz
(6) 編譯器 gcc-2.95或者 更高版本
進入
二.解壓安裝包並設定環境變數
(如下均假設在/root/qte目錄下進行)
(1) 安裝tmake:
#cd ~/qte
#tar zxvf tmake-1.13.tar.gz
#export tmakedir=$pwd/tmake-1.13
(2) 安裝qt:
#cd ~/qte
#tar zxvf qt-x11-2.3.2.tar.gz
#export qt2dir=$pwd/qt-2.3.2
(3) 安裝qte:
#cd ~/qte
#tar zxvf qt-embedded-2.3.10-free.tar.gz
#export qtedir=$pwd/qt-2.3.10
三.編譯qt和qt/embedded
(1) 編譯qt:
#cd $qt2dir
//設定環境變數
#export tmakepath=$tmakedir/lib/linux-g++
#export qtdir=$qt2dir
#export path=$qtdir/bin:$path
//將qt庫加入到系統共享庫中
#ldconfig $qtdir/lib
//開始編譯
#make clean
//configure命令對qt進行編譯設定,其包含很多選項,可通過./configure –help
//來獲取詳細的幫助資訊。
#./configure -no-xft –system-jpeg
#make
//將uic工具複製到qt/embedded目錄中,可覆蓋原檔案
#cp bin/uic $qtedir/bin/
(2) 編譯qvfb:
//qvfb工具用來生成virtual frame buffer,它可以模擬在嵌入式開發板上的顯示
//狀況,如果在qvfb中模擬執行沒有問題的話,就可以直接通過交叉編譯在
//開發板上執行了。
#cd $qtedir/tools/qvfb
//設定環境變數
#export path=$tmakepath/bin:$path
#make clean
//用tmake自動建立makefile檔案
#tmake -o makefile qvfb.pro
//開始編譯
#make
//將qvfb工具複製到qt/embedded目錄中,可覆蓋原檔案
#cp qvfb $qtedir/bin
(3) 編譯qt/embedded:
#cd $qtedir
//設定環境變數
#export tmakepath=$tmakedir/lib/qws/linux-x86-g++
#export qtdir=$qtedir
#export path=$qtdir/bin:$path
//將qt/embedded庫加入到系統共享庫中
#ldconfig $qtdir/lib
#make clean
//開始編譯
//configure中的選項-qvfb用來對virtual frame buffer進行支援,-depths用來
//支援4位、8位、16位、32位的顯示深度
#./configure -no-xft –system-jpeg -qvfb -depths 4,8,16,32
#make
四.建立開發環境的初始變數
#vi ~/.bashrc
export tmakedir=~/qte/tmake-1.13
export qt2dir=~/qte/qt-2.3.2
export qtedir=~/qte/qt-2.3.10
export qtdir=$qtedir
export path=$qtdir/bin:$tmakepath/bin:$path
五.設定qt/embedded開發的共享庫
//通過在ld.so.conf檔案中加入開發庫的絕對路徑,將開發庫設定成linux
//共享庫,以後就可以直接在專案源**中使用include預編譯指令載入
//qt和qt/embedded開發庫中的類了。
#vi /etc/ld.so.conf
/root/qte/qt-2.3.2/lib
/root/qte/qt-2.3.10/lib
六.測試virtual frame buffer
#cd $qtedir/examples/launcher
#qvfb -width 640 -height 480 &
#sleep 10
#./launcher –qws
七.說明
以上對於原始碼包的編譯均使用了gcc-2.95(其中包含 g++-2.95)編譯器,其由rh9系統自帶。若使用其它linux發行版,則需要保證其安裝了gcc-2.95編譯器,其它版本的編譯器如在最新發行 版中常見的gcc-3.4.6,gcc-4.1等均無法保證正常編譯。
當手動安裝了gcc-2.95編譯器後,需要修改所有原始碼包中的編譯器選項:
tmake:直接修改makefile檔案,指定編譯器為gcc-2.95
qt-x11:修改$qt2dir/configs/linux-g++-shared檔案,將編譯器指定為g++-2.95
qt-embedded:修改$qtedir/configs/linux-x86-g++-shared檔案,修改為g++-2.95
在對qt-embedded進行交叉編譯時,也要修改對應的config檔案(arm-linux-g++)。
嵌入式GUI與Qt Embedded
由於開發中使用的開源嵌入式3d圖形庫klimt是基於opengl 和opengl es的,而opengl和opengl es需要有嵌入式gui的支援,以提供給它與圖形裝置的介面,以便把三維影象顯示給使用者。所以我需要選擇一種嵌入式gui系統,然後把它移植到嵌入式linux上,再有是把基於opengl...
嵌入式開發
經常會有人說嵌入式開發,嵌入式開發千差萬別,我總體上分為4個等級 微電子開發 rtos開發 指令碼開發 富應用開發 這一類產品行為比較固定,比如說電視遙控器,遙控汽車,電飯煲,恆溫燒水壺,溫濕度感測器,智慧型門鎖等。這些裝置行為都比較簡單,通過按鈕可以設定系統功能和行為。量不大,經常會選用flash...
初識嵌入式 嵌入式開發概述
1 什麼是嵌入式技術 1 嵌入式軟體與非嵌入式軟體的區別?答 嵌入式軟體是結合作業系統之上做的開發 非嵌入式軟體是做的裸機開發。裸機 沒有作業系統 2 嵌入式開發與微控制器開發的區別?答 區別 是否有作業系統。拓展 答 優點 解決了軟體的移植性 解決了開發人員的能力的劃分問題。提供了豐富的網路協議 ...