主要包括两部分,一是在宿主机上生成能交叉编译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