对于QT 4 移植,本篇文章介绍QT4移植到了mini2440的开发板上。在操作之前,首先要弄清楚一些概念:
1.什么是Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。Qt 软件前身为 Trolltech (奇趣科技),2008年6月被诺基亚收购。
2.Qt的版本和分类
Qt 的版本是按照不同的图形系统来划分的,目前分为四个版本:
Win32版,适用于Windows平台;
X11版,适合于使用了x系统的各种 linux 和 unix的平台;
Mac版,适合与苹果MacOS;
embedded版,适合于具有帧缓冲(frame buffer)的linux 的平台
3.Qtopia和Qt的关系
Qt Palmtop Environment,是构建于Qt/E之上一个类似桌面系统的应用环境,包括了PDA和手机等掌上系统常见的功能如电话簿、日程表等。
Qtopai后来改名为Qt Extended,2009年3月3日,Nokia决定停止Qt Extended的后续开发,转而全心投入Qt的产品开发,并逐步会将一部分QtExtended的功能移植到Qt开发框架中。
qt-4.5.3的编译与移植:
在PC的linux系统中开发qt程序,完全可以下载完整的SDK, Qt SDK for Linux/X11 32-bit** (370 Mb),包含QT库,Qt Creator和qt的其他开发工具。下载后直接安装即可。
所以,主要的工作是编译在ARM板上运行的qt库:下载qt-embedded-linux-opensource-src-4.5.3.tar.gz,tslib-1.4.tar.gz
1.首先编译安装触摸屏驱动库tslib-1.4
view sourceprint?1
./autogen.sh
./configure --prefix=/usr/local/qte-arm/tslib-1.4 --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
make
sudo make install
- 1.
- 2.
- 3.
- 4.
- 5.
这样就可以在/usr/local/qte-arm/tslib-1.4目录下看到相关的应用程序、共享库、配置文件等,这些库和配置文件都是要拷到ARM板的根文件系统中的。
2.编译qt-embedded-linux-opensource-src-4.5.3
view sourceprint?01 ./configure -prefix /usr/local/qte-arm \
-no-qt3support \
-qt-zlib \
-qt-libtiff \
-qt-libpng \
-qt-libmng \
-qt-libjpeg \
-make libs \
-nomake examples \(不编译例子程序和文档)
-nomake demos \
-nomake docs \
-no-nis \
-no-cups \
-no-iconv \
-xplatform qws/linux-arm-g++ \
-embedded arm \
-little-endian \
-qt-freetype \
-depths 8,16,24,32 \
-qt-gfx-linuxfb \
-no-gfx-transformed \
-no-gfx-qvfb \
-no-gfx-vnc \
-no-gfx-multiscreen \
-qt-kbd-usb \
-qt-kbd-tty \
-qt-mouse-pc \
-no-glib \
-qt-mouse-tslib -I/usr/local/qte-arm/tslib/build/include -L/usr/local/qte-arm/tslib/build/lib
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
编译选项-qt-mouse-tslib需要用到触摸屏功能的动态库,所以得把之前编译安装的tslib库包含进来。
make
make install
- 1.
- 2.
这样qt/E的编译工作完成,主要是得到了qt程序在arm板上运行所需要的库文件,以及用于arm平台的qmake,moc,uic等工具。
3.拷贝相关文件到ARM根文件系统
拷贝/usr/local/qte-arm/tslib整个目录到arm板根文件系统root_nfs/下;
拷贝/usr/local/qte-arm/lib/下所有库文件到root_nfs/opt/qt/lib目录下,你可能不需要全部的库文件,可根据需要选择;
4.设置环境变量和配置文件
首先设置tslib的配置文件 gedit root_nfs/tslib/build/etc/ts.conf
view sourceprint?1 module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
- 1.
- 2.
- 3.
- 4.
- 5.
然后设置qt及tslib的环境变量: gedit root_nfs/etc/profile
在最后加入:
view sourceprint?01 export QTDIR=/opt/qt
export T_ROOT=/tslib/build
export PATH=$T_ROOT/bin:$PATH
export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_KEYBOARD=USB:/dev/input/event1
export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
export QWS_DISPLAY=LinuxFb:mmWidth45:mmHeight60:0
export QWS_SIZE=240x320
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
重启开发板,移植完成!注意,在开发板上运行qt程序要加-qws 选项,从而让程序以Server模式运行。
【编辑推荐】