QTE及QPE在ARM板上的移植
所需軟件工具包:
tmake -1.11.tar.gz(tmake-1.13)
qt-embedded-2.3.7.tar.gz
qtopia-free-1.7.0.tar.gz
qt-x11-free-2.3.2
(注意:qt/x11版本必須要比qte的版本要老)
利用的交叉編譯工具為cross-2.95.3
交叉編譯環(huán)境的建立
1.建立tmake工具包
在host 上的/home/下建立
# tar –xzf tmake-1.11.tar.gz
2.建立qt-x11-free-2.3.2得到uic和designer工具
# cd /home/
# tar –xzf qt-x11-free-2.3.2.tar.gz
# export QTDIR=/home/qt-2.3.2
# export PATH=/usr/local/ARM/2.95.3/bin:$QTDIR/bin:$PATH
#./configure –no-opengl
# make && make –c tools/qvfb
# mv tools/qvfb/qvfb bin
# cd ..
3.交叉編譯基于ARM架構(gòu)的QTE庫(kù)
# mkdir /home/arm
# cd /home/arm
把qt-embedded 2.3.7.tar.gz壓縮包放到/home/arm目錄下
# tar –xzf qt-embedded-2.3.7.tar.gz
# cd qt-2.3.7
# export PATH=/usr/local/arm/2.95.3/bin:$PATH
# export QTDIR=$PWD
# export QTEDIR=$QTDIR
將qtopia-free-1.7.0下的qconfig-qpe.h CP到/home/arm/qt-2.3.7/ src/tools下面(注:如果不用到QPE1.7.0可以不CP,另外在這里你可以根據(jù)你的需要來(lái)裁剪QTE2.3.7的庫(kù),#define 你需要的類,形成一個(gè)qconfig-xxx.h自定義配置文件就行,具體類的作用可以通過(guò)查找qt的說(shuō)明文檔。如果需要支持觸摸屏必須要加上#define QT_QWS_IPAQ的內(nèi)容。)
# ./configure –xplatform. linux-arm-g++ -shared –realse –qconfig xxx –qvfb –depths 4,8,16,32
將qt/x11下的bin下的uic工具CP到QTE2.3.7的bin下。
# make
形成了基于ARM架構(gòu)的QTE2.3.7庫(kù)。
4.利用ARM架構(gòu)的QTE2.3.7庫(kù)交叉編譯qtopia-free-1.7.0
由于編譯QPE1.7.0需要用到j(luò)peg.so.*和luuid.so.*等庫(kù)文件,所以在編譯QPE1.7.0前必須要先編譯的e2fsprogs-1.35.tar.gz,jpeg src.v6b.tar.gz這兩個(gè)相關(guān)的庫(kù)。
#mkdir /home/arm/qt-2.3.7/include/uuid
將uuid.h CP到qt-2.3.7/include/uuid下,并將jpeg.so.*和luuid.so.*CP到qt-2.3.7/lib下
#export QTEDIR=/home/arm/qt-2.3.7
#export QTEDIR=/home/arm/qt-2.3.7
#export QPEDIR=/home/arm/qtopia-free-1.7.0
#export LD_LIBRARY_PATH=/home/tmake-1.11/lib/qws/linux-arm-g++
#export PATH=/home/tmake-1.11/bin:$PATH
#./configure –platform. linux-arm-g++
分別進(jìn)入
src/setting src/tools src/games src/application src/3rdparty/applications
將這些目錄下面所有Makefile里面的-lm 改成-lm –luuid –luuid
#make
以上是整個(gè)編譯過(guò)程。
5.建立新的根文件系統(tǒng)cramfs
將板上原有的根文件目錄mount上并復(fù)制
#mkdir /mnt/cram
#mount –t cramfs YL2410_camare_demo.cramfs /mnt/cram –o loop
#mkdir /usr/temp
#cp –ra /mnt/cram/ /usr/temp/
(注:CP不能實(shí)現(xiàn)文件符號(hào)鏈接的復(fù)制,所以必須要人手用ln指令重新建立相應(yīng)的符號(hào)鏈接)
將QTE2.3.7下的lib和QPE1.7.0下的lib及bin目錄復(fù)制到temp的相應(yīng)位置,如改動(dòng)了其路徑,必須將.bashrc里的環(huán)境變量進(jìn)行改寫(xiě),并查看temp/cram/usr/etc/rc.local文件,并作出相應(yīng)的改動(dòng)。
把利用QTE2.3.7庫(kù)編譯的程序放到QPE1.7.0下的bin下并利用mkcramfs工具生成新的根文件系統(tǒng)
#mkcramfs cram cram.cramfs
將新生成的根文件目錄系統(tǒng)燒寫(xiě)到板中,重啟運(yùn)行便可以在觸摸屏上見(jiàn)到自己制作的QPE環(huán)境。
miaomi