Qt Embedded嵌入式開發環境的建立

2021-08-25 06:51:29 字數 3430 閱讀 9923

一.開發環境

(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 嵌入式開發與微控制器開發的區別?答 區別 是否有作業系統。拓展 答 優點 解決了軟體的移植性 解決了開發人員的能力的劃分問題。提供了豐富的網路協議 ...