Qt移植学习之路
QT4.5.3至mini2440)
1、准备源码包
(1)从ftp://ftp.qt.nokia.com/qt/source/
网站下载:qt-embedded-linux-opensource-src-4.5.3.tar.gz
和 qt-x11-opensource-src-4.5.3.tar.gz
前者是移植到开发板上运行的;
后者是运行于linux平台下用于仿真QT应用程序的软件,这样你可以在linux平台下把你应用程序都调试好,然后再利用QT4.5.3把应用程序编译成ARM版本下载至开发板,这样你就可以在开发板上运行你的QT应用程序了。
(2)从http://ishare.iask.sina.com.cn/f/21567219.html网上下载tslib-1.4.tar.gz包,这包用于管理触摸屏,例如可用于它来校正触摸屏,并保存校正数据。
2、编译安装tslib-1.4# tar zxvf tslib-1.4.tar.gz#cd tslib
#./autogen.sh#./configure--prefix=/home/mytslib/--host=arm-linuxac_cv_func_malloc_0_nonnull=yes
#make
#make install3、编译安装QT-X11-4.5.3
#tar xvzf qt-x11-opensource-src-4.5.3.tar.gz#cd
qt-x11-opensource-src-4.5.3
#./configure
这时候会出现问题:
Which edition of Qt do you want to use ?
Type 'c' if you want to use the Commercial Edition.
Type 'o' if you want to use the Open Source Edition.
选o
Do you accept the terms of either license?
选yes
接着会出现问题提示:
Basic XLib functionality test failed!
You might need to modify the include and library search paths by
editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in
/home/hxy/share/qt/qt-x11-opensource-src-4.5.3/mkspecs/linux-g++.
解决方法是:
#yum install libXau-devel
#yum install libX11-devel
#yum install libXext-devel
重新进行./configure即可继续进行下面步骤:
#gmake
#gmake install
设置环境变量:
#vim qt_x11_setenv.sh
输入:
#!bin/bash
PATH=/usr/local/Trolltech/Qt-4.5.3/bin:$PATH
QTDIR=/usr/local/Trolltech/Qt-4.5.3
MAINPATH=$QTDIR/man:$MAINPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PATH QTDIR MAINPATH LD_LIBRARY_PATH
echo " set
qt-x11 env.
successful "
保存并退出。
# source qt_x11_setenv.sh
# echo $QTDIR
#cd /usr/local/Trolltech/Qt-4.5.3/examples/widgets/analogclock
# qmake -project
# qmake
#make clean
#make
#./analogclock -qvfb
(这-qvfb到底是做什么用的,去掉效果貌似一样,费解。)注意:每次进入qt-x11-linux-opensource-src-4.5.3目录中要
#source qt_x11_setenv.sh
把环境变量设置好,否则又会出现无法编译。
4、编译安装QT4.5.3#cd
/
#mkdir mini2440
#mkdir tslib#cd
/home/hxy/share/qt/
#tar xvzf qt-embedded-linux-opensource-src-4.5.3.tar.gz
#cd qt-embedded-linux-opensource-src-4.5.3
#./configure -prefix /mini2440 -release -shared
-fast -pch -no-qt3support -qt-sql-sqlite -no-libtiff -no-libmng
-qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl -nomake
examples -nomake demos -nomake tools -optimized-qmake -no-phonon
-no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr
-no-xrender -no-xkb -no-sm -no-xinerama -no-xshape
-no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm
-depths 16 -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb
-no-mouse-qvfb -qt-kbd-usb -confirm-license -qt-mouse-tslib
-I/home/mytslib/include -L/home/mytslib/lib
#gmake
#gmake install设置环境变量:#gedit setenv-embedded.sh
输入:
PATH=/mini2440/bin:$PATH QTDIR=/mini2440 MAINPATH=$QTDIR/man:$MAINPATH LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH export PATH QTDIR MAINPATH LD_LIBRARY_PATH
保存退出。
注意:每次进行qt4-embedded的交叉编译前先# source
setenv-embedded.sh
5、移植相关库文件至开发板
在开发板的终端下执行:
#cd /
#mkdir mini2440
#mkdir tslib
复制编译生成的一些库文件及配置文件至开发板上的mini2440、tslib:
#cp –rf /home/mytslib/lib /tslib
#cp –rf /home/mytslib/etc /tslib
#cp –rf /mini2440/lib /mini2440
#cp /home/mytslib/bin/ts_calibrate /bin
#cp /home/mytslib/bin/ts_test /bin
编辑开发板/etc/profile,开发板终端输入:
#cat>>/etc/profile/<
exportQTDIR=/mini2440
exportT_ROOT=/tslib
exportPATH=$QTDIR/bin:$PATH
exportTSLIB_CONSOLEDEVICE=none
exportTSLIB_FBDEVICE=/dev/fb0
exportTSLIB_TSDEVICE=/dev/event0
exportTSLIB_PLUGINDIR=$T_ROOT/lib/ts
exportTSLIB_CONFFILE=$T_ROOT/etc/ts.conf
exportTSLIB_CALIBFILE=/etc/pointercal
exportQWS_MOUSE_PROTO=tslib:/dev/event0
exportLD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib
EOF
#source
/etc/profile
#echo $QTDIR
(回显为“/mini2440”则说明环境变量设置OK)
设置触摸屏的配置文件:
#vi
/tslib/etc/ts.conf
把# module_raw
input前面的“#”号去掉,然后把该行移至行首
使得ts.conf如下:
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
保存退出。
#source
/etc/profile
6、测试
测试触摸屏校正,开发板终端下执行:
#ts_calibrate (触摸较正程序)
#ts_test (触摸屏拖曳测试程序)
运行QT应用程序,主机终端下执行:
#cd
/home/hxy/share/qt/qt-embedded-linux-opensource-src-4.5.3/
#echo
$QTDIR (回显为“/mini2440”则说明环境变量设置OK,否则source
setenv-embedded.sh)
#cd
/home/hxy/share/qt/qt-embedded-linux-opensource-src-4.5.3/examples/mainwindows/application/
#qmake –project
#qmake (生成Makefile)
#make
由此即可生成“application”可执行程序,把它下载到开发板上并执行:#./application –qws