有关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
穿插编译环境的树立
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/binQTDIR/binPATH
#./configure –no-opengl
# make && make –c tools/qvfb
# mv tools/qvfb/qvfb bin
# cd ..
3.穿插编译依据ARM架构的QTE库
# 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/binPATH
# 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,别的在这里你能够依据你的需求来裁剪QTE2.3.7的库,#define 你需求的类,构成一个qconfig-***.h自定义配置文件就行,详细类的效果能够经过查找qt的阐明文档。假如需求支撑触摸屏有必要要加上#define QT_QWS_IPAQ的内容。)
# ./configure –xplatform. linux-arm-g++ -shared –realse –qconfig *** –qvfb –depths 4,8,16,32
将qt/x11下的bin下的uic东西CP到QTE2.3.7的bin下。
# make
构成了依据ARM架构的QTE2.3.7库。
4.使用ARM架构的QTE2.3.7库穿插编译qtopia-free-1.7.0
因为编译QPE1.7.0需求用到jpeg.so.*和luuid.so.*等库文件,所以在编译QPE1.7.0前有必要要先编译的e2fsprogs-1.35.tar.gz,jpegsrc.v6b.tar.gz这两个相关的库。
#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/binPATH
#./configure –platform. linux-arm-g++
别离进入
src/setting
src/tools
src/games
src/application
src/3rdparty/applications
将这些目录下面一切Makefile里边的-lm 改成-lm –luuid –luuid
#make
以上是整个编译进程。
5.树立新的根文件体系cramfs
将板上原有的根文件目录mount上并仿制
#mkdir /mnt/cram
#mount –t cramfs YL2410_camare_demo.cramfs /mnt/cram –o loop
#mkdir /usr/temp
#cp –ra /mnt/cram/ /usr/temp/
(注:CP不能实现文件符号链接的仿制,所以有必要要人手用ln指令从头树立相应的符号链接)
将QTE2.3.7下的lib和QPE1.7.0下的lib及bin目录仿制到temp的相应方位,如改动了其途径,有必要将.bashrc里的环境变量进行改写,并检查temp/cram/usr/etc/rc.local文件,并作出相应的改动。
把使用QTE2.3.7库编译的程序放到QPE1.7.0下的bin下并使用mkcramfs东西生成新的根文件体系
#mkcramfs cram cram.cramfs
将新生成的根文件目录体系烧写到板中,重启运转便能够在触摸屏上见到自己制造的QPE环境。