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/bin:$QTDIR/bin:$PATH #./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/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 ,另外在这里你可以根据你的需要来裁剪 QTE2.3.7 的库, #define 你需要的类,形成一个 qconfig-xxx.h 自定义配置文件就行,具体类的作用可以通过查找 qt 的说明文档。如果需要支持触摸屏必须要加上 #define QT_QWS_IPAQ 的内容。 ) # ./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 架构的 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/bin:$PATH #./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 环境 。 |