arm平台tslib的编译与qte源代码包配置中的-qt-mouse-tslib

     自己一个人学习摸索,真不是件容易的事,为了能够在qt-embedded-linux-opensource-src-4.5.3里配置-qt-mouse-tslib不出问题,我可是足足折腾了三天,以下我将自己的工作成果贴出,与大家共享:

一、下载tslib-1.4.tar,编译

     1. 当然以下内容是参考网络其它文章的,安装前有三个相关软件:autoconf,automake,libtool.在自己系统安装光盘里,用这些关键字搜索,安装相应的软件包,不要担心,已经安装过了,如果安装了,会提示你的。

     2.我一般会在/home目录下建一个myfile的目录,将自己解压文件放在里面:cd /home/myfile    tar  xvf (tslib-1.4放的目录)/tslib-1.4.tar

     3.cd tslib-1.4

     4.这一步很重要:export CC=.... ,export CXX=...,一般CC=arm-linux-gcc ,CXX=arm-linux-g++但也不是全部。比如我用的周立功的smartarm3250,上面的交叉编译工具是arm-vfp-linux-gnu-gcc,arm-vfp-linux-gnu-g++所以我的应该这么写:export CC=arm-vfp-linux-gnu-gcc,export CXX=arm-vfp-linux-gnu-g++

关于第4步我想多说一点,再进行第4步之前,你要在你的/etc/profile里,或是.bash_profile里,添加交叉编译工具路径:export PATH=$PATH:/opt/nxp/.../bin(你的交叉编译工具路径),然后用source profile或source .bash_profile使你的设置生效。

             还有一步:export PATH=$PATH:/opt/nxp/gcc-4.3.2-glibc/bin(增加的是编译器的路径),不然的话会出现cannot create excutable files什么的,这可是血的教训,浪费了我两天功夫啊。

     5.    ./autogen.sh

     6.   ./configure --prefix=/usr/local/tslib --host=arm-vfp-linux-gnu av_cv_func_malloc_0_nonnull=yes

--prefix后面是你指定的安装路径

     7.     make

     8.     make install

进行完以上工作之后,你要进入/usr/local/tslib/bin目录用file命令验证一下:file+要验证的文件名。比如要验证a.txt,即file a.txt。注意如果文件信息里,ELF文件信息后面有arm这个词,如果是80386,说明,你用的编译器不是交叉编译器,而是系统的gcc,g++。

二、arm平台配置qt-embedded-linux-opensource-src-4.5.3

   进入解压目录后./configure ...-qt-mouse-tslib...其它的编译选项,我就不说了,一般不会出什么问题。-qt-mouse-tslib这个选项是专门针对触摸屏的。有相当多一部人会出这样一个问题:Thetslib functionality test failed!You might need to modify the include and library search paths by editing QMAKE_INCDIR and QMAKE_LIBDIR in...

那么你可以这样做:在../qt-embedded-linux-opensource-src-4.5.3/mkspecs/qws/linux-arm-g++/qmake.conf文件中加入
QMAKE_INCDIR =/usr/local/tslib/include

QMAKE_LIBDIR =/usr/local/tslib/lib
当然也可在./configure里加入-I/=/usr/local/tslib/include -L=/usr/local/tslib/lib来解决问题,可是当你试过了以上方法后仍不奏效,怎么办?这也是我今天特意写这文章的原因。

特别要提到CuteQt Blog一篇名为''qtopia/qt-extended的配置时错误(configure error)"的文章。上面提到,这样的问题实际的解决办法:在./configure选项里加入-verbose,这样可以比较详细地告诉你错误的原因,本人也是在这样的提示下找到最终的问题所在。文章提到的第二种方法,其实效果和加-verbose是一样的,在此不再赘述。

 

加入-verbose选项后,我的上面提示,找不到编译工具:arm-linux-g++.我看了.../mkspecs/qws/linux-arm-g++/qmake.conf

文件,QMAKE_CC=arm-linux-gcc,QMAKE_CXX=arm-linux-g++.这就对了,因为我的交叉编译工具是arm-vfp-linux-gnu-gcc,arm-vfp-linux-gnu-g++,所以改过来QMAKE_CC=arm-vfp-linux-gnu-gcc,QMAKE_CXX=arm-vfp-linux-gnu-g++

 

重新./configure一次,又出现以下问题:/opt/../ld:skipping incompatible /usr/local/tslib/lib/libts.so when searching for -lts

:/opt/../ld:cannot find -lts出现以上问题的原因很明显,你的libts.so与./configure里指定的平台不兼容。即tslib库文件生成的不对,你的交叉编译环境有问题。这也是我强调编译tslib-1.4的原因。因为之前,我第一次编译tslib-1.4时,没有export CC和CXX,即生成的libts.so是80386类型库文件。知道真相后,我们按照上面介绍的tslib-1.4的编译方法,重新编译一次,然后进入qt-embedded-linux-opensource-src-4.5.3下./configure ...发现配置通过。搞定!

 

补充:有时候虽然编译过了tslib,但是在编译qte源码时发现虽然指定了-I和-L但是发现qte并不认帐,无论怎么修改都不行,这时候应该还是tslib没有编译正确。

网上有的网友说要安装autoconfig automake libtool,不过我用的redhat5和redhat6都不需要安装(可能已经安装好了)


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值