您的位置:首页 > 服装鞋帽 > 男装 > Qt触摸屏的编译过程

Qt触摸屏的编译过程

luyued 发布于 2011-01-04 22:16   浏览 N 次  
一、宿主机环境建立
首先要建立宿主机上Qt环境,包括,Tmake,Qt的建立。具体步骤如下 :
(1)安装Tmake
cd ~/pxa270Qt
tar –xzf tmake-1.13.tar.gz
export TMAKEDIR=$PWD/tmake-1.13
(2)安装Qt 2.3.2
cd ~/pxa270Qt
tar –xzf qt-x11-2.3.2.tar.gz
export QT2DIR=$PWD/qt-2.3.2
(3)安装Qt/Embedded
cd ~/pxa270Qt
tar –xzf qt-embedded-2.3.10-free.tar.gz
export QTEDIR=$PWD/qt-2.3.10
(3)安装tslib
cd ~/pxa270Qt
tar xvzf tslib.tar.gz
export TSLIBDIR=`pwd`/tslib
export TSLIBINST=`pwd`/tslib-install
环境变量的设置是非常重要的,它关系到能否正确的安装及编译这些安装包,下面介绍一下这些环境变量:
TMAKEDIR : 指向用于编译Qt/Embedded的Tmake工具
QT2DIR : 指向Qt-X112.3.2的文件夹
QTEDIR : 指向Qt-Embedded2.3.10的文件夹
TSLIBDIR:指向tslib 源文件位置
TSLIBINST:指向 tslib 编译安装后的位置。
编译Qt/Embedded。
(1)Build Qt2.3.2
cd $QT2DIR
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
export QTDIR=$QT2DIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
./configure -no-xft
make
mkdir $QTEDIR/bin
cp bin/uic $QTEDIR/bin/
(2)Build tslib
确保前面环境变量设置正确
export LD_LIBRARY_PATH=$TSLIBINST/lib
export CC=arm-linux-gcc
./autogen.sh --host=arm-linux --prefix=$TSLIBINST
make -j4
make install
cp -a $TSLIBINST/lib/* $QTEDIR/lib/
cp -a $TSLIBDIR/plugins/.libs/*.so $QTEDIR/lib/
cp -a $TSLIBINST/bin/* $QTEDIR/bin
cp -a $TSLIBINST/etc/ts.conf $QTEDIR/.
cp -a $TSLIBINST/include/ts* $QTEDIR/include/.
(3)Build Qt2.3.10
将$QTEDIR/configs/ 下将linux-arm-g++-shared中的
SYSCONF_LIBS = -lm 添加 -lts
#SYSCONF_LINK_SHLIB = arm-linux-gcc 添加 –lts
cp -f ../qconfig-large.h src/tools/qconfig-my.h
qconfig-large.h见附件。
将$QTEDIR/src/kernel下的qwsmouse_qws.cpp中的所有/etc/pointercal修改为
/tmp/ts-calib.congf
这个地方需要着重说明,由于在我所使用的 arm2410系统中无法在/etc下写入数据,只能修改此处。否则只需 在对应目录下建立相应的文件即可。此文件是由ts_calibrate生成,文件名和目录是在环境变两种指定。这就要求在上面修改的文件目录要和环境变量指定的相一致。
cd $QT2DIR
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
export QTDIR=$QT2DIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QT2DIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
./configure -xplatform linux-arm-g++ -qconfig my -no-qvfb -depths 16 -tslib -thread -I$TSLIBINST/include -L$TSLIBINST/lib
make sub-src
二、开发板环境建立
将编译生成的库拷贝到/arm2410s/lib下,$QTEDIR/bin/ts*,$QTEDIR/include/ts*,ts.conf 拷贝到/arm2410s下。
在开发板上挂载宿主机上的 /arm2410s
mount –t nfs 192.168.0.114:/arm2410s /mnt/nfs
将lib文件拷贝到开发板/usr/lib下
cd /mnt/nfs
cp -arf /mnt/nfs/lib/* /usr/lib/.
Cp –arf ts.conf /mnt/yaffs/.
Cp -arf tslib.h /usr/qpe/include/.
Cp –af ts_calibrate /mnt/yaffs/.
export QTDIR=/usr/
export QTEDIR=/usr/
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=/tmp/ts.conf
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CALIBFILE=/tmp/ts-calib.conf
export TSLIB_PLUGINDIR=/usr/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib
export QWS_SIZE=640x480
export QWS_MOUSE_PROTO="TPanel:/dev/input/event0 USB"
export LANG=zh_CN
insmod /mnt/yaffs/touchscreen/ts-uptech.o
cp /mnt/yaffs/ts.conf /tmp
cd /mnt/yaffs
此时运行 ./ts_calibrate -qws
即可以通过屏幕上显示的十字来校正屏幕坐标!
三、应用程序编译
在$QTDIR/examples下边有很多程序源码,由于在编译libqte的时候已经把所有需要的库拷贝到/lib中,所以现在只需要在tmake配置文件--$TMAKEDIR/lib/qws/linux-arm-g++/tmake.conf
将其中“TMAKE_LINK= arm-linux-gcc”
“TMAKE_LINK_SHLIB= arm-linux-gcc”
修改为:“TMAKE_LINK= arm-linux-g++”
“TMAKE_LINK_SHLIB= arm-linux-g++”
察看progen tmake是否是$TMAKEDIR下的
Which progen
Which tmake
在这里不需要指定LD_LIBRARY_PATH
在生成的Makefile里边是靠$QTDIR/lib来找到相应库的。所以还要制定正确的QTDIR保证是前面编译libqte库成功的目录。
如果都正确,就可以进行编译。
以launcher 为例:
Cd launcher/
Progen –t app.t launcher.pro
Tmake –o Makefile launcher.pro
Make
Cp launcher /arm2410s/tspro
四、开发板上运行程序
由于/arm2410s已经挂载在/mnt/nfs下则
Cd /mnt/nfs
Cp launcher /mnt/yaffs
Cd /mnt/yaffs
./launcher –qws
就可以在开发板上享受你的成果了。
广告赞助商