在 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-&gt;init。这发生在使用模板的旧代码没有完全限定对具有this-&gt; 前缀的类成员的访问。尝试 (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的主要内容,如果未能解决你的问题,请参考以下文章

在构建机器上从命令行运行 IOS 仪器的问题

在 linux 上从源代码编译 LLVM

如何在 Redhat linux 机器上从 tar.xz 文件安装 nodejs?

在 Windows 上从源代码构建点云库 Boost 时出错

在 Windows 上从源代码构建 NSIS(VS2012)

在 Windows 上从源代码构建 nginx