安装arm版qt出错
来源:互联网 发布:sql between and的用法 编辑:程序博客网 时间:2024/05/23 01:57
先介绍一下我的交叉编译环境,OS是ubuntu11.10,交叉编译器是arm-linux-gcc-4.3.3(arm-2007q1),其它,tslib-1.4、QT4.7.0,硬件平台sbc6845。
以前我的交叉编译器使用的是arm-linux-gcc-4.3.2,联合编译QT4.7.0和tslib-1.4没有任何问题。现在,我换成了arm-linux-gcc-4.3.3,再次联合编译时,就出现问题了。过程如下:
1、安装tslib-1.4 。
2、下载QT,我当时下载的版本是 qt-everywhere-opensource-src-4.7.0.tar.gz 。
3、执行以下命令执行QT4.7.0编译前的配置:
# tar -zxvf qt-everywhere-opensource-src-4.7.0.tar.gz
# cd qt-everywhere-opensource-src-4.7.0
# ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.7.0-arm -opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-g++ -depths 16,18,24 -fast -optimized-qmake -pch -iconv -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 -no-webkit -no-qvfb -no-phonon -no-nis -no-opengl -no-cups -no-glib -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-separate-debug-info -nomake examples -nomake tools -nomake docs -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
上面的主要参数含义说明如下:
-prefix /usr/local/Trolltech/QtEmbedded-4.7.0-arm : 表示Qt4.7最终的安装路径是/usr/local/Trolltech/QtEmbedded-4.7.0-arm。注意,将QT部署到目标板上时,也需要把Qt4.7放在这个路径上;
-embedded arm : 表示将编译针对arm平台的embedded版本;
-xplatform qws/linux-arm-g++ : 表示使用arm-linux交叉编译器进行编译;
-qt-mouse-tslib : 表示将使用tslib来驱动触摸屏
-I /usr/local/tslib/include
-L /usr/local/tslib/lib : 包含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/liuqiqi/source/qt/qt-everywhere-opensource-src-4.7.2/mkspecs/qws/linux-arm-g++.
根据提示,需要将tslib的头文件和库文件的路径赋给QMAKE_INCDIR和QMAKE_LIBDIR两个变量。于是,进入/home/liuqiqi/source/qt/qt-everywhere-opensource-src-4.7.2/mkspecs/qws/linux-arm-g++路径下,打开qmake.conf文件,在3个include后面添加:
QMAKE_INCDIR = /usr/local/tslib/include
QMAKE_LIBDIR = /usr/local/tslib/lib
去掉 -I 和 -L 两个参数,重新执行上面的命令,结果仍然出现相同的问题。
于是,又开始求助google和百度了。但是,搜到的结果基本上都是说系统找不到tslib的头和库文件,将tslib头文件和库文件的路径赋给QMAKE_INCDIR和QMAKE_LIBDIR就可以解决问题。这种方法我已经试过了,对于我这种情况,显然不适用。
那为什么我之前用arm-linux-gcc-4.3.2编译的时候就没有问题呢?这时,我开始找两个编译器之间的不同之处了,我到arm-linux-gcc-4.3.2的bin文件夹下,发现里面没有arm-linux-gcc和arm-linux-g++指令,取而代之的是arm-none-linux-gnueabi-gcc和arm-none-linux-gnueabi-g++了。于是,我修改了/home/liuqiqi/source/qt/qt-everywhere-opensource-src-4.7.2/mkspecs/qws/linux-arm-g++/qmake.conf文件,将arm-linux换成arm-none-linux-gnueabi:
#
# 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 = arm-none-linux-gnueabi-gcc
QMAKE_CXX = arm-none-linux-gnueabi-g++
QMAKE_LINK = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_STRIP = arm-none-linux-gnueabi-strip
load(qt_config)
再次执行上面的指令,问题解决。
4、执行以下指令编译并安装QT4.7.2:
# make && make install
上面命令中出现的 && 符号表示只有左边的 make 命令执行成功时(返回0),才会执行右边 make install 命令。
编译的时候,又出现了以下错误,为什么这么多问题?没办法,看看问题在哪儿吧。
/home/liuqiqi/source/qt/qt-everywhere-opensource-src-4.7.2/lib/libQtGui.so: undefined reference to `ts_read_raw'
/home/liuqiqi/source/qt/qt-everywhere-opensource-src-4.7.2/lib/libQtGui.so: undefined reference to `ts_open'
/home/liuqiqi/source/qt/qt-everywhere-opensource-src-4.7.2/lib/libQtGui.so: undefined reference to `ts_fd'
/home/liuqiqi/source/qt/qt-everywhere-opensource-src-4.7.2/lib/libQtGui.so: undefined reference to `ts_config'
/home/liuqiqi/source/qt/qt-everywhere-opensource-src-4.7.2/lib/libQtGui.so: undefined reference to `ts_close'
/home/liuqiqi/source/qt/qt-everywhere-opensource-src-4.7.2/lib/libQtGui.so: undefined reference to `ts_read'
继续求助网络,这个问题比较好解决,将/home/liuqiqi/source/qt/qt-everywhere-opensource-src-4.7.2/mkspecs/common/linux.conf中的QMAKE_LIBS_THREAD变量添加一个参数“-lts”,如下所示,保存后,继续编译:
QMAKE_LIBS_THREAD = -lpthread -lts
编译完成后,Qt4.7.2被安装在/opt/Qt4.7目录下
- 安装arm版qt出错
- ARM板安装Qt
- 【问题】QT,安装就出错
- arm-elf-tools安装出错的处理
- qt 4.6.2 ubuntu上安装出错
- Qt 4.8.0安装 出错原因
- 已安装桌面版Linux QT再安装ARM版本QT
- ARM 平台上编译安装qt
- 交叉编译ARM版 Qt
- 交叉编译ARM版 QT
- 编译 arm 版的qt
- 交叉编译ARM版 Qt
- 编译 arm 版的qt
- 安装arm-elf-tools时出错的解决办法
- WIN7下安装ADS(ARM Developer Suite)出错
- 为什么需要编译安装x86和arm版的qt-embedded
- 嵌入式平台arm linux 之qt 4.5交叉编译到webkit时出错解决方法
- QT 安装完成后,调试 ,IOS模拟器出错
- input子系统
- js如何定义函数
- HDOJ 【C】1.1.3 A+B for Input-Output Practice (III)
- 中国剩余定理(也叫孙子定理)
- IOS推送功能的实现
- 安装arm版qt出错
- ArcGIS Server 10:发布影像服务
- java jstl fmt fn 标签
- More Effective C++读书笔记11
- 为什么jQuery是用toString来判断数据类型,而不是typeof或instanceof
- iOS成长之路-获取系统键盘的高度
- Microsoft.Practices.EnterpriseLibrary连接Oracle
- ArcGIS Server 10:发布地图文档服务
- java 浮点数计算的问题,计算要用BigDecimal