最近在编译安装qt-everywhere-4.7.4,在配置tslib的时候总是出现错误。经过思考和百度,终于找到了解决方法。
我的安装环境是:
使用系统:ubuntu 14.04
编译器: arm-linux-gcc 4.3.2 目录在/usr/local/arm/4.3.2/
tslib版本:tslib-1.4 目录在/home/hero/work/tslib-1.4
qt版本: qt-everywhere-4.7.4 目录在/home/hero/work/qtarm-build
首先编译安装tslib,进入到tslib-1.4的目录,执行./autogen-clean.sh做一下清理,之后执行./autogen.sh生成相关文件。
然后echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache;
之后执行./configure --host=arm-linux --prefix=/home/hero/work/tslib --cache-file=arm-linux.cache
接下来就是make和make install
最后修改安装目录下/etc/ts.conf文件,例如我的路径就是 vi /home/hero/work/tslib/etc/ts.conf。将第二行
module_rawinput前面的井号“#”和空格删除,注意,前面一定定格。最后改完的结果是有如下配置module_rawinput
modulepthres pmin=1
modulevariance delta=30
moduledejitter delta=100
modulelinear
说明:
1、如果不添加echo"ac_cv_func_malloc_0 _nonnull=yes">arm-linux.cache会报错:
ts_test.o: In function `main':
ts_test.c:(.text+0x1d8): undefinedreference to `rpl_malloc'
fbutils.o: In function`open_framebuffer':
fbutils.c:(.text+0xa20): undefinedreference to `rpl_malloc'
2、--prefix项是指定tslib的安装路径,在make install之前要手动创建相关文件夹,例如我的安装路径中,tslib
目录就是我自己创建出来的。
到此tslib就安装结束了。
下一步是配置安装qt4.7.4。关于配置选项我自己也没弄的太懂,不过编译后的程序可以在arm上面运行。具体
的配置选项以后有时间慢慢研究吧。进入正题:
解压什么的我就不说了。不解压也就谈不上配置了。
进入qt4.7.4目录,我的文件加/home/hero/work/qtarm-build。进入qtarm-build目录以后我创建了一个脚本文件build.sh,如下
红色部分是tslib的安装路径,这个必须和tslib安装路径一样,不然会提示配置错误:
The tslib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR and QMAKE_LIBDIR in
/home/hero/work/qtarm-build/mkspecs/qws/linux-arm-g++.
在qtarm-build目录下更改mkspecs/qws/linux-arm-g++/qmake.conf文件。
红色部分是需要重新添加的,注意前面有空格,蓝色部分是因为我自己的环境变量设置的有问题,所以添加了
绝对路径,如果环境变量设置的没问题,可以不用添加。
然后就是到qtarm-build目录运行之前创建的脚本文件。执行./build.sh,出现提示,输入yes开始配置。如果qt4.7.4
是从官方网站下载的,应该可以正确配置。如果是经过别人修改过的,有可能还是提示:
The tslib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR and QMAKE_LIBDIR in
/home/Raymond/qt-embedded-arm-tslib/mkspecs/qws/linux-arm-g++.
我就是后者,折腾了我很久,才找到解决办法,网上有人说是找不到arm-linux-gcc也会报这样的错误,那就按照我上面的蓝色自体部分,添加编译器的绝对路径。如果是其实是你安装的tslib位置,和你在脚本文件中配置的不一样,那请自行更改。最坑人的是,这两个都不是,而是出现在config.test这个文件夹下面。如果这个qt曾经被编译过,就可能出现这个问题。你可以去到config.test/unix/tslib目录下,查看一下里面的Makefile文件,看看里面的关于tslib的路径是不是你自己的安装路径。如果不是,直接在这里更改即可,然后在回到qtarm-build目录。重新配置,即可通过。
我也试过先去掉关于tslib的选项,可以配置过去,这时会提示你可以执行make confclean来清除之前的配置项,我弱弱的以为,这就可以清除所有的配置项。很傻很天真啊。这样qt应该就可以正确无误的配置过去了。
然后就是make 和 make install了。到此我心里的大石头终于落地了,小弟菜鸟一枚,如有错误欢迎指正,一起讨论。
联系客服