去掉QT源码中的-lts参数的方法(让QT不支持触摸屏的操作)

    以下采用的平台为周立功的A62GC平台,使用的QT版本是:QT4.8.6,我们的产品业务上决定产品不使用触摸屏,而直接使用按键,所以在这里就要把触摸屏的配置功能去掉,否则在编译QT应用程序的时候会提示缺少-lts这样的字眼。

首先拿到QT源码,对应该平台的qmake版本找到该qmake的配置文件:

qt-everywhere-opensource-src-4.8.6/mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf

打开qmake.conf看看:

#
# qmake configuration for building with arm-none-linux-gnueabi-g++
#

include(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)
include(../../common/qws.conf)

# modifications to g++.conf
QMAKE_CC                = arm-linux-gnueabihf-gcc -lts 
QMAKE_CXX               = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK              = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK_SHLIB        = arm-linux-gnueabihf-g++ -lts

# modifications to linux.conf
QMAKE_AR                = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY           = arm-linux-gnueabihf-objcopy
QMAKE_STRIP             = arm-linux-gnueabihf-strip

load(qt_config)
QMAKE_INCDIR = /opt/tslib/include
QMAKE_LIBDIR = /opt/tslib/lib

如配置文件所示,以下四句是编译器配置相关的:

QMAKE_CC                = arm-linux-gnueabihf-gcc -lts 
QMAKE_CXX               = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK              = arm-linux-gnueabihf-g++ -lts

QMAKE_LINK_SHLIB        = arm-linux-gnueabihf-g++ -lts

还有以下,这个是动态链接库的位置,我们也要把它去掉。

QMAKE_INCDIR = /opt/tslib/include
QMAKE_LIBDIR = /opt/tslib/lib

也就是说,当我们使用qmake编译的时候,其实背后是qmake -lts ,默认带了这样一个参数,这个参数其实就是动态链接库,详情可以参考我以前写过的文章:

https://blog.csdn.net/morixinguan/article/details/52451612

扫描二维码关注公众号,回复: 2146069 查看本文章

如果不需要的话,把-lts这个参数全部删掉,再编译QT源码的时候就不会加上触摸屏的配置了。

同时,在QT的源码下,还需要将环境配置相关的文件移除,也就是build-qt这个文件。

#!/bin/sh

./configure \
	   -prefix /opt/qt-m6g2c									\
	   -opensource -confirm-license -release -embedded arm		\
        -xplatform qws/linux-arm-gnueabi-g++					\
        -depths 16,18,24,32 -no-qvfb -no-cups -no-mmx			\
        -no-3dnow -no-sse -no-sse2 -no-glib -no-openssl -shared \
        -no-largefile -no-accessibility -no-xrender -no-webkit  \
	   -no-gtkstyle -nomake examples -nomake docs -nomake demos \
	   -fast -lrt -little-endian -qt-mouse-pc -qt-mouse-linuxtp \
	   -qt-mouse-tslib -qt-mouse-linuxinput -qt-kbd-linuxinput  \
	   -qt-gfx-linuxfb -qt-gfx-transformed						\
        -D QT_QWS_CLIENTBLIT                    				\
		-I /opt/tslib/include									\
		-L /opt/tslib/lib

如上配置脚本所示,需要将 -I /opt/tslib/include以及/opt/tslib/lib移除,由于build_qt调用了configuare,此时直接配置环境会报错,也就是下面看到的The tslib functionality test failed!

其实这是一个编译测试的指令,没有什么实际的作用,我们只要将这段脚本代码移除即可。


最后执行:

source build_qt

看到下述即表示环境设置成功!


make && make install即可生成全新的qmake以及QT相关的动态库以及头文件。




猜你喜欢

转载自blog.csdn.net/morixinguan/article/details/80969822