注:移植时,注意交叉编译器版本对应于不同的qt版本范围,以及内核版本。希望各位在前期做足准备工作。
本人此处用的是arm-linux-gcc 3.4.1 qt为4.5.3 。以下为本人的配置,由于板子配置不同,可能情况不一,请先鉴别再使用!
首先配置nfs,然后安装交叉编译器
(1) 安装arm-linux-gcc
复制arm-linux-gcc-3.4.1.tgz到根目录下tmp文件夹里解压命令tar xvzf arm-linux-gcc-3.4.1 -C /
注意以上命令必须要有-C而且是大写的后边有个空格也要注意
然后配置下编译环境路径gedit /etc/profile等一会出来文本编辑器后在文件最后(最后一行)加上下面代码
export PATH=/usr/local/arm/3.4.1/bin:$PATH
source /etc/profile
上面是使刚才的配置文件效。
此时你可以在root用户下验证arm-linux-gcc -v,看是否版本相对应。
(2) 解压及编译触摸屏软件tslib1.4.tar.gz
把tslib1.4.tar.gz 文件放到/tmp/目录下,解压得到/tmp/tslib 目录。
./autogen.sh
./configure --prefix=/opt/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
make
make install
(3)编译及安装QT Embedded软件
1.解压qt-embedded-linux-opensource-src-4.5.3.tar.bz2
tarxjvf qt-embedded-linux-opensource-src- 4.5.3.tar.bz2
2. 编译安装qt- embedded-linux-opensource-src-4.5.3
./configure -prefix /opt/qte-4.5.3-arm -xplatform qws/linux-arm-g++ -embedded arm-little-endian depths 8,16,24,32 -makelibs -make examples -make demos -no-qt3support -no-nis -no-cups -no-iconv-no-glib -qt-zlib -qt-libtiff -qt-libpng -qt-libjpeg -qt-libmng -qt-freetype-qt-gfx-linuxfb -no-gfx-transformed -no-gfx-qvfb -no-gfx-vnc-no-gfx-multiscreen -qt-kbd-usb -qt-kbd-tty -qt-mouse-pc -qt-mouse-tslib -I/opt/tslib/include -L/opt/tslib/lib
make
make install
(4) 复制相应的库
将所有的/opt/qte-4.5.3-arm/lib/库专门拷出来。有些资料上说只要复制libQtGui.so.4libts-0.0.so.0 libQtCore.so.4 libQtNetwork.so.4 及其被链接文件。这里没有这么作,我用U盘挂载,不用担心空间的问题了。为了不必要的麻烦可以将动态库整个复制过去。
(5) 环境变量设置
export QTDIR=/mnt/udisk/rootfs/qte
exportT_ROOT=/mnt/udisk/rootfs/tslib
export PATH=$QTDIR/bin:$PATH
exportQT_QWS_FONTDIR=/mnt/udisk/rootfs/qte/lib/fonts
exportQWS_MOUSE_PROTO=tslib:/dev/input/event0
exportLD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib
export LANG=zh_CN
exportQWS_MOUSE_PROTO=MouseMan:/dev/input/mice
(6) 运行程序
./llk–qws
(7)终止程序
Ctrl+C
遇到的问题及解决方案
1、出现以下问题:/opt/../ld:skippingincompatible /tslib/ lib/ libts.so whensearching for –lts
是交叉编译时指定tslib位置,与当前放的位置不一致!
2、 QFontDatabase: Cannotfind font directory /opt/qte-4.5.3-arm /lib/fonts - is Qt installedcorrectly?
加入解决:export QT_QWS_FONTDIR=/mnt/nfs/qte/lib/fonts。
3、库文件缺失问题
./llk.arm: error while loading shared libraries:librt.so.1: cannot open shared object file: No such file or directory
如下解决:从地址/usr/local/arm/3.4.1/arm-linux/lib拷到地址/opt/qte/lib/。
连连看程序界面: