一、準(zhǔn)備工作
開(kāi)發(fā)環(huán)境:RedHat Linux9.0+ARM-LINUX
QT軟件包:tmake-1.13.tar.gz qt-embedded-2.3.10.tar.gzqt-x11-2.3.2 .tar.gz
二、解壓安裝包并設(shè)置環(huán)境變量
接下來(lái)的工作都在統(tǒng)一目錄下執(zhí)行,如/home/9261qt
1、安裝Tmake
tar -xzf tmake-1.13.tar.gz
export TMAKEDIR=$PWD/tmake-1.13
2、安裝Qt2.3.2
tar -xzfqt-x11-2.3.2.tar.gz
exportQT2DIR=$PWD/qt-2.3.2
3.安裝Qt/Embedded
tar -xzfqt-embedded-2.3.10-free.tar.gz
exportQTEDIR=$PWD/qt-2.3.10
三、編譯QT
1.編譯 Qt2.3.2
cd$QT2DIR
exportTMAKEPATH=$TMAKEDIR/lib/linux-g++
exportQTDIR=$QT2DIR
exportPATH=$QTDIR/bin:$PATH
exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
./configure-no-xft
make
mkdir$QTEDIR/bin
cp bin/uic$QTEDIR/bin/
注:./configure 是對(duì)Qt進(jìn)行配置, 編譯完成后需要將生成的/bin/uic 復(fù)制到$QTEDIR下新創(chuàng)建的目錄bin 中,因?yàn)樵陔S后編譯Qt/Embedded 的時(shí)候會(huì)用到這個(gè)工具。
2.編譯Qvfb
exportTMAKEPATH=$TMAKEDIR/lib/linux-g++
exportQTDIR=$QT2DIR
exportPATH=$QTDIR/bin:$PATH
exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
cd$QTEDIR/tools/qvfb
tmake -o Makefileqvfb.pro
make
mv qvfb$QTEDIR/bin/
注:qvfb 工具用來(lái)生成Virtualframebuffer,這是一個(gè)非常有用的工具,它可以模擬在開(kāi)發(fā)板上的顯示情況,如果在Virtual framebuffer 中運(yùn)行沒(méi)有問(wèn)題的話,可以直接通過(guò)交叉編譯在開(kāi)發(fā)板上運(yùn)行。
3. 編譯Qt/Embedded
cd$QTEDIR
exportTMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
exportQTDIR=$QTEDIR
exportPATH=$QTDIR/bin:$PATH
exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
./configure -no-xft-qvfb -depths 4,8,16,32
make
四、PC上運(yùn)行測(cè)試
1、在主機(jī)的frambuffer上運(yùn)行
cd$QTEDIR/examples/launcher
./launcher-qws
2、在Virtual frambuffer上運(yùn)行
exportQTDIR=$QTEDIR
export PATH=$QTEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTEDIR/lib:$QT2DIR/lib:$LD_LIBRARY_PATH
cd $QTEDIR/examples/launcher
qvfb -width 640 -height 480 &
sleep 10
./launcher–qws
五、QT移植到ARM開(kāi)發(fā)板上
cd$QTEDIR
exportTMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
exportQTDIR=$QTEDIR
exportPATH=$QTDIR/bin:$PATH
exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
./configure -xplatformlinux-arm-g++ -no-xft -no-qvfb -depths 4,8,16,32
make
這步完成后,我們會(huì)在/$QTEDIR/lib/目錄下面看到libqte.so,libqte.so.2,libqte.so.2.3 ,libqte.so.2.3.10 這四個(gè)文件,我們可以使用file 命令來(lái)查看這個(gè)庫(kù)文件是否是我們需要的在開(kāi)發(fā)板上跑的庫(kù)。
filelibqte.so.2.3.10
libqte.so.2.3.10: ELF 32-bit LSBshared object, ARM, version 1 (ARM), not stripped
有了這個(gè)庫(kù)以后我們就可以把它拷貝到我們的開(kāi)發(fā)板中相應(yīng)的庫(kù)目錄下面,這里我們選擇了開(kāi)發(fā)板上的/usr/lib 目錄,將/$QTEDIR/lib/下的libqte.so*復(fù)制到/usr/lib 目錄下。
六、ARM運(yùn)行測(cè)試程序