一、準備工作
開發(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)境變量
接下來的工作都在統(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 是對Qt進行配置, 編譯完成后需要將生成的/bin/uic 復(fù)制到$QTEDIR下新創(chuàng)建的目錄bin 中,因為在隨后編譯Qt/Embedded 的時候會用到這個工具。
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 工具用來生成Virtualframebuffer,這是一個非常有用的工具,它可以模擬在開發(fā)板上的顯示情況,如果在Virtual framebuffer 中運行沒有問題的話,可以直接通過交叉編譯在開發(fā)板上運行。
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上運行測試
1、在主機的frambuffer上運行
cd$QTEDIR/examples/launcher
./launcher-qws
2、在Virtual frambuffer上運行
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開發(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
這步完成后,我們會在/$QTEDIR/lib/目錄下面看到libqte.so,libqte.so.2,libqte.so.2.3 ,libqte.so.2.3.10 這四個文件,我們可以使用file 命令來查看這個庫文件是否是我們需要的在開發(fā)板上跑的庫。
filelibqte.so.2.3.10
libqte.so.2.3.10: ELF 32-bit LSBshared object, ARM, version 1 (ARM), not stripped
有了這個庫以后我們就可以把它拷貝到我們的開發(fā)板中相應(yīng)的庫目錄下面,這里我們選擇了開發(fā)板上的/usr/lib 目錄,將/$QTEDIR/lib/下的libqte.so*復(fù)制到/usr/lib 目錄下。
六、ARM運行測試程序