QT4.7移植

主要包括两部分,一是在宿主机上生成能交叉编译QT应用程序的开发环境(主要是库,包括触摸屏库tslib和QT库,涉及到库的剪裁),并设置环境变量使程序在编译链接时能找到相应的资源(内容较少,主要是QTDIR/bin和QTDIR/PATH),二是生成的可执行程序在开发板上的运行,这时的环境变量是使程序找到所依赖项(内容叫多,包括触摸屏,按键等的设置),所需的资源从宿主机开发环境中拷贝一部分。也就是说,程序的生成和执行是在不同的环境中。用于编译库和应用程序的交叉编译工具链最好保持一致

第一部分:


安装触摸屏库tslib1.4


1. 下载tslib1.4,解压

2.  进入解压的目录运行 执行./autogen.sh

3.  执行./configure --prefix=/opt/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes ,经过一段时间的编译

4.  执行make install

5.  修改/opt/tslib/etc/ts.conf,把第二行的#号去掉(这样做的主要目的是为了在移植到板子上的时候,可以制定输入模块)

6.  在/etc/profile中加入 export PATH=/opt/tslib:$PATH

编译qt4.7.0-arm


1.  下载qt-everwhere-opensource-4.7.0,并解压最好重命名qt-everwhere-opensource-4.7.0-qte

2.   开始进行配置选项

./configure -embedded arm -release -opensource -fast -no-accessibility -no-scripttools -no-mmx -no-multimedia -no-svg -no-3dnow -no-sse -no-sse2 -silent -qt-libpng -qt-libjpeg -no-libmng -no-libtiff  -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-glib -D__ARM_ARCH_5TEJ__ -qt-mouse-tslib -I /opt/tslib/include -L /opt/tslib/lib -confirm-license "$@"

参数意义:release版本(比debug版本小)
nomake 不安装docs,demo,examples,tools

第二部分:


1.移植tslib,将ubuntu中的/opt/tslib 拷贝到根文件系统中的/opt/下面

2. 移植qte4.7.0将/usr/local/Trolltech/QtEmbedded-4.7.0-arm下面的lib文件夹拷贝到根文件中的相同 目录下(必需得先创建相应的目录)

注:此时可以根据需要裁剪lib 中的内容去掉不用的.so文件

3.   增加新的显示中文的字体wenquanyi 放到上面的/lib/fonts目录下。删除其他不需要的字体

4.   拷贝/usr/local/Trolltech/QtEmbedded-4.7.0-arm/plugins目录到根文件系统中的/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib/目录下

5.   修改profile文件添加环境变量

export TSLIB_TSDEVICE=/dev/input/event0

export LD_LIBRARY_PATH=/opt/tslib/lib:$LD_LIBRARY_PATH

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_PLUGINDIR=/opt/tslib/lib/ts

export TSLIB_CONSOLEDEVICE=none

export TSLIB_CONFFILE=/opt/tslib/etc/ts.conf

export POINTERCAL_FILE=/etc/pointercal

export TSLIB_CALIBFILE=/etc/pointercal

export QWS_MOUSE_PROTO='TSLIB:/dev/input/event0'


export QTDIR=/usr/local/Trolltech/QtEmbedded-4.7.0-arm

export PATH=$QTDIR/bin:$PATH

export LD_LIBRARY_PATH=$QTDIR/lib:/usr/local/lib:$DTDIR/lib/plugins/imageformats:$LD_LIBRARY_PATH


export QT_PLUGIN_PATH=/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib/plugins


export QWS_KEYBOARD=TTY:/dev/tty1

export KDEDIR=/opt/kde


export HOME=/root

测试运行

./test –qws

 

你可能感兴趣的:(linux,ubuntu,qt,OpenSource)