赞
踩
开发环境:
Qt下载地址:http://download.qt.io/archive/qt/
tslib下载地址:https://github.com/libts/tslib/releases
sudo apt-get install libtool autogen autoconf automake build-essential libgl1-mesa-dev
tar xvf tslib-1.21.tar.bz2
cd tslib-1.21/
./autogen.sh
./configure --host=arm-linux --prefix=/usr/local/tslib
make && make install
说明:–prefix=[安装目录,根据你的需求进行修改]
我编译的时候遇到如下两个问题:
./src/.libs/libts.so: undefined reference to EVIOCGPROP'
error: 'SYN_MT_REPORT' undeclared (first use in this function)
这两个问题出现的原因是tslib版本比较新,但是交叉编译器比较老,也就是版本不匹配的问题,这两个宏定义可以在主机linux中的<linux/input.h>头文件中找到(/usr/include/linux/input.h),直接复制过来粘贴进tslib/src/tslib.h中即可。
编译完成后,拷贝到开发板:
cp /usr/local/tslib /opt/embeded/yaffs2/lib -rf
配置开发板上tslib的环境:
vi /etc/profile
添加:
export TSLIB_ROOT=/lib/tslib
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONSOLEDEVICE=none
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
说明:
cat /dev/event0
测试一下,正常的话触摸屏幕会有乱码打印出来,若没有打印则该文件不是触摸屏的设备文件。更新环境变量:
source /etc/profile
运行屏幕校准测试:
/lib/tslib/bin/ts_calibrate
此时屏幕会出现坐标点,依次点击后会生成文件/etc/pointercal,该文件目录不要更改,因为Qt会在/etc
目录下找pointercal这个文件。
解压Qt源码包并进入
tar xvf qt-everywhere-opensource-src-4.8.5.tar.gz
cd qt-everywhere-opensource-src-4.8.5/
修改交叉编译器并添加tslib的库目录:
gedit mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf
第一步,添加tslib的包含目录和库目录:
QMAKE_INCDIR = /usr/local/tslib/include/
QMAKE_LIBDIR = /usr/local/tslib/lib/
第二步,修改编译器名称,改成你自己的交叉编译器,并添加-lts选项,目的是链接tslib库。
gedit mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf
修改后:
配置编译:
./configure -prefix /usr/local/qt4.8.5-arm \ -force-pkg-config \ -opensource \ -confirm-license \ -release -shared \ -embedded arm \ -xplatform qws/linux-arm-gnueabi-g++ \ -depths 16,18,24 \ -fast \ -optimized-qmake \ -pch \ -qt-sql-sqlite \ -qt-libjpeg \ -qt-zlib \ -qt-libpng \ -qt-freetype \ -little-endian -host-little-endian \ -no-qt3support \ -no-libtiff -no-libmng \ -no-opengl \ -no-mmx -no-sse -no-sse2 \ -no-3dnow \ -no-openssl \ -webkit \ -no-qvfb \ -qt-mouse-tslib \
说明:-prefix [Qt安装目录],这里根据你的需要进行修改。
开始编译并安装Qt:
make -j4 && make install
说明:-j4,这里的4表示是4核心,取决于你的电脑CPU是几核的,目的是为了加速编译。
我按照此开发环境和步骤编译是没有问题的,其他环境和版本未知。
编译完成后拷贝到开发板文件系统中:
cp /usr/local/qt4.8.5-arm /opt/embeded/yaffs2/lib/ -rf
配置开发板上qt的运行环境:
vi /etc/profile
添加:
export QWS_DISPLAY="LinuxFb:mmWidth95:0"
export QWS_MOUSE_PROTO=tslib:/dev/event0
export QWS_SIZE=480*272
export QTDIR=/lib/qt4.8.5-arm
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH
说明:
export QWS_MOUSE_PROTO=tslib:/dev/eventN
,N为数字export QWS_MOUSE_PROTO="Intellimouse:/dev/mouseN"
,N为数字更新环境变量:
source /etc/profile
运行Qt自带的示例程序:
注意要加 -qws选项:
效果:
Qt的安装教程就不在此写了,网上很多linux上安装Qt的教程。
打开Qt Creator->Tools->Options…->Build & Run,配置如下几项:
添加qmake:
添加交叉编译工具链:
添加构建套件:
新建一个HelloWorld工程,构建套件选择我们刚添加的embeded,然后布局如下并编译工程:
编译完成后在工程目录下找到HelloQt并拷贝到开发板的文件系统中,然后./HelloQt -qws
运行:
开发板运行效果:
ends…
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。