在 Linux 机器上从源代码构建 Qt-4.3.2
Posted
技术标签:
【中文标题】在 Linux 机器上从源代码构建 Qt-4.3.2【英文标题】:Building Qt-4.3.2 from source on Linux machine 【发布时间】:2015-06-26 09:06:24 【问题描述】:我正在尝试在我的 linux 机器上构建和编译 Qt 4.3.2。我已经从 http://download.qt.io/archive/qt/4.3/qt-x11-opensource-src-4.3.2.tar.gz.mirrorlist 下载了包 然后我用选项配置它:
./configure -platform linux-g++ -debug-and-release -qt-zlib -qt-libtiff -qt-libmng -qt-libjpeg -openssl -v -opengl -glib
之后我尝试用make
编译它并得到以下错误。
../../../include/QtCore/../../src/corelib/thread/qatomic.h: In instantiation of ‘QAtomicPointer<T>::QAtomicPointer(T*) [with T = QByteArray]’:
../../corelib/codecs/qsimplecodec.cpp:609:74: required from here
../../../include/QtCore/../../src/corelib/thread/qatomic.h:207:7: error: ‘init’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
../../../include/QtCore/../../src/corelib/thread/qatomic.h:207:7: note: declarations in dependent base ‘QBasicAtomicPointer<QByteArray>’ are not found by unqualified lookup
../../../include/QtCore/../../src/corelib/thread/qatomic.h:207:7: note: use ‘this->init’ instead
make[1]: *** [.obj/release-shared/qsimplecodec.o] Error 1
make[1]: Leaving directory '/home/shraddha/shraddha/jst/QT/qt-x11-opensource-src-4.3.2/src/tools/rcc'
make: *** [sub-rcc-make_default-ordered] Error 2
我做错了什么或留下了什么吗?
【问题讨论】:
【参考方案1】:它会提示您有什么问题note: use ‘this->init
。这发生在使用模板的旧代码没有完全限定对具有this->
前缀的类成员的访问。尝试 (a) 在配置之前将 CXXFLAGS='-fpermissive'
添加到您的环境中,或者 (b) 获取更新的 Qt 版本或 (c) 旧的编译器(开玩笑)。
【讨论】:
我试过了。但它没有用...现在正在获取最新的 Qt 版本 "现在正在获取最新的 Qt 版本" 无论如何都比较好 出于某种原因,我特别想要 Qt-4.8.0 版本。我尝试通过运行命令./configure --help
从源代码构建它,它显示为 grep: /root/shraddha/qt-everywhere-opensource-src-4.8.0/src/corelib/global/qglobal.h: No such file or directory Cannot process version from qglobal.h: Cannot proceed.
。当我做locate qglobal.h
时,没有corelib folder
。请帮忙。以上是关于在 Linux 机器上从源代码构建 Qt-4.3.2的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Redhat linux 机器上从 tar.xz 文件安装 nodejs?
在 Windows 上从源代码构建点云库 Boost 时出错