The tslib functionality test failed错误解决办法总结

        最近在编译安装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,如下

<span style="font-size:18px;">./configure --prefix=/home/hero/work/qt-arm \
-embedded arm \
-release \
-opensource \
-fast \
-no-accessibility \
-no-scripttools \
-no-mmx \
-no-multimedia \
-no-svg \
-no-webkit \
-no-3dnow \
-no-sse \
-no-sse2 \
-silent \
-qt-libpng \
-qt-libjpeg \
-no-libtiff \
-no-multimedia \
-make libs \
-nomake tools \
-nomake examples \
-nomake docs \
-nomake demo \
-no-nis \
-no-cups \
-no-iconv \
-no-dbus \
-no-openssl \
-xplatform qws/linux-arm-g++ \
-little-endian \
-qt-freetype \
-depths 4,8,16,32 \
-no-glib \
-qt-mouse-tslib -I<span style="color:#FF0000;">/home/hero/work/tslib/include</span> -L<span style="color:#FF0000;">/home/hero/work/tslib/lib</span> </span>

        红色部分是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文件。

<span style="font-size:18px;">#
# qmake configuration for building with arm-linux-g++
#

include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)

# modifications to g++.conf
QMAKE_CC                = <span style="color:#3366FF;">/usr/local/arm/4.3.2/bin/</span>arm-linux-gcc <span style="color:#FF0000;">-lts</span> 
QMAKE_CXX               = <span style="color:#3333FF;">/usr/local/arm/4.3.2/bin/</span>arm-linux-g++ <span style="color:#FF0000;">-lts</span>
QMAKE_LINK              = <span style="color:#3333FF;">/usr/local/arm/4.3.2/bin/</span>arm-linux-g++ <span style="color:#FF0000;">-lts</span>
QMAKE_LINK_SHLIB        = <span style="color:#6600CC;">/usr/local/arm/4.3.2/bin/</span>arm-linux-g++ <span style="color:#FF0000;">-lts</span>

# modifications to linux.conf
QMAKE_AR                = <span style="color:#3333FF;">/usr/local/arm/4.3.2/bin/</span>arm-linux-ar cqs
QMAKE_OBJCOPY           = <span style="color:#000099;">/usr/local/arm/4.3.2/bin/</span>arm-linux-objcopy
QMAKE_STRIP             = <span style="color:#3333FF;">/usr/local/arm/4.3.2/bin/</span>arm-linux-strip

load(qt_config)</span>

        红色部分是需要重新添加的,注意前面有空格,蓝色部分是因为我自己的环境变量设置的有问题,所以添加了

绝对路径,如果环境变量设置的没问题,可以不用添加。

        然后就是到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了。到此我心里的大石头终于落地了,小弟菜鸟一枚,如有错误欢迎指正,一起讨论。


              
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值