qt-embedded-linux-opensource-src-4.5.1成功移植到micro2440


开发环境
OS:Fedora 8
GCC:4.3.0
交叉编译:arm-linux-g++ 4.2.3
Qt版本 qt-embedded-linux-opensource-src-4.5.1.tar.gz

 触摸屏 tslib1.4

在此过程中我也参考了很多其他的方法

但是linux不同的机子不同的环境不可能完全照搬,我几乎把网上所有能找到的关于qt移植的都找遍了

通过一周的痛苦摸索,才弄出来

希望下面的东西能给大家一点点帮助

一个人痛苦摸索是多么的痛苦啊

1. 首先安装交叉编译器。我使用的友善提供的4.2.3无需编译直接解压就可以了

2. tslib1.4的安装
正确解压,我安装在/tslib-1.4

#./autogen
#echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
//配置目标机、缓冲、安装路径
#./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=/tslib-1.4
#make
#make install

3 QtE的配置和安装
安装配置目录最好不要和源码放在一起
我是这样做的
解码的源码文件名为
/tmp/qte/qt-embedded-linux-opensource-src-4.5.1
配置路径为
/tmp/qte/target451

这个事最发杂的,我弄了一周左右才吧这些弄明白
开始只是照着别人的弄,后来才理解
下面是我的配置文件

#cd /tmp/qte/target
进入配置目录
编写一个shell脚本 一次完成配置和编译安装
文件内容如下

#/bin/bash
../qt-embedded-linux-opensource-src-4.5.1/configure \
-prefix /QtE-4.5.1-arm \
-release \
-shared \
-fast \
-no-largefile -qt-sql-sqlite -no-qt3support \
-no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit \
-qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libjpeg -make libs \
-nomake examples -nomake docs -nomake demo \  #这个可以大大缩短编译时间
-no-nis -no-cups -no-iconv -no-dbus -no-openssl \
-xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 16 \
-qt-gfx-linuxfb -qt-gfx-transformed -qt-gfx-multiscreen \
-no-gfx-vnc -no-gfx-qvfb -qt-kbd-usb -no-glib \
-qt-mouse-tslib -I/tslib-1.4/inclued -L/tslib-1.4/lib
make
make install

其中的具体配置网上都有详细的说明
我的机器用了大约2个小时急全部弄完了

4 移植
我用的是nfs方式调试,这样比较方便,而且没有大小的限制
我的nfs根目录是

按照友善的micro2440-um-20090728.pdf版设置的
路径为
/opt/FriendlyARM/mini2440/root_qtopia
我将整个安装的/QtE-4.5.1-arm 文件都拷贝到了roo_qtopia/ 目录下,刚刚开始还不知道哪些需要裁减,等以后再来忙忙学习吧
将/tslib-1.4 也copy到roo_qtopia/ 目录下
移植最重要的就是设置环境变量
我的环境变量设置shell文件如下

#!/bin/sh
export V_ROOT=/tslib-1.4
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=$V_ROOT/etc/pointercal
export TSLIB_CONFFILE=$V_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$V_ROOT/lib/ts
export LD_LIBRARY_PATH=$V_ROOT/lib:$LD_LIBRARY_PATH

cd /tslib/bin/
./ts_calibrate# 触摸屏校准 出现5各点依次点击

export QTDIR=/QtE-4.5.1-arm
export QWS_KEYBOARD="USB:/dev/input/event1"
export LD_LIBRARY_PATH=$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH

#no transformed
#export QWS_DISPLAY="transformed:180:0"
#export QWS_DISPLAY="LinuxFb:mmWidth240:mmHeight320:0"
#export QWS_DISPLAY="Transformed:Rot90: LinuxFbb:mmWidth240:mmHeight320:0"
#export QWS_SIZE=320x240

#transformed
export QWS_SIZE=240x320
export QWS_DISPLAY="Transformed:Rot90:LinuxFb:mmWidth55:mmHeight75"

export QWS_MOUSE_PROTO="Tslib:/dev/input/event0"

cd $QTDIR/test
echo "ok" >/dev/ttySAC0
./$1 -qws

在超级终点中运行就,qt4可以正常显示,ok
全部移植成功

相关内容