【发布时间】:2017-01-16 05:47:00
【问题描述】:
我正在尝试在 mac (OS X 10.11.6) 上编译 Qscintilla 2.9.3(获得 here),但 make 步骤失败并出现以下错误:
/Applications/Xcode.app/Contents/Developer/usr/bin/g++ -c -pipe -O2 -std=gnu++11 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform /Developer/SDKs/MacOSX10.11.sdk -mmacosx版本分钟= 10.8 -fvisibility =隐藏-fvisibility-内联隐藏-w -fPIC -DQSCINTILLA_MAKE_DLL -DSCINTILLA_QT -DSCI_LEXER -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_MACEXTRAS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -一世。 -一世。 -I../include -I../lexlib -I../src -I/Applications/Utilities/Qt/5.7/clang_64/lib/QtPrintSupport.framework/Headers -I/Applications/Utilities/Qt/5.7/clang_64 /lib/QtWidgets.framework/Headers -I/Applications/Utilities/Qt/5.7/clang_64/lib/QtMacExtras.framework/Headers -I/Applications/Utilities/Qt/5.7/clang_64/lib/QtGui.framework/Headers -I /Applications/Utilities/Qt/5.7/clang_64/lib/QtCore.framework/Headers -I。 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/OpenGL.framework/Headers -I/Applications/Xcode.app/Contents /Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/AGL.framework/Headers -I/Applications/Utilities/Qt/5.7/clang_64/mkspecs/macx-g++ -F /Applications/Utilities/Qt/5.7/clang_64/lib -o qsciscintilla.o qsciscintilla.cpp
在 qsciscintilla.cpp:23:
中包含的文件中 在 ./Qsci/qsciscintilla.h:29:
中包含的文件中 在 /Applications/Utilities/Qt/5.7/clang_64/lib/QtCore.framework/Headers/QByteArray:1:
中包含的文件中 在 /Applications/Utilities/Qt/5.7/clang_64/lib/QtCore.framework/Headers/qbytearray.h:44:
中包含的文件中 在 /Applications/Utilities/Qt/5.7/clang_64/lib/QtCore.framework/Headers/qrefcount.h:43:
中包含的文件中 在 /Applications/Utilities/Qt/5.7/clang_64/lib/QtCore.framework/Headers/qatomic.h:41:
中包含的文件中 在 /Applications/Utilities/Qt/5.7/clang_64/lib/QtCore.framework/Headers/qglobal.h:1145:
中包含的文件中 在 /Applications/Utilities/Qt/5.7/clang_64/lib/QtCore.framework/Headers/qatomic.h:46:
中包含的文件中 /Applications/Utilities/Qt/5.7/clang_64/lib/QtCore.framework/Headers/qbasicatomic.h:61:4:错误:
“Qt 需要 C++11 支持”
# 错误“Qt 需要 C++11 支持”
^
/Applications/Utilities/Qt/5.7/clang_64/lib/QtCore.framework/Headers/qbasicatomic.h:90:13:错误:
未知类型名称“QAtomicOps”
typedef QAtomicOps 操作;
在关于该主题的其他问题之后,我添加了
\# With C++11 support
greaterThan(QT_MAJOR_VERSION, 4){
CONFIG += c++11
} else {
QMAKE_CXXFLAGS += -std=c++0x
}
在 qscintilla.pro 文件中,无济于事。
这个thread 似乎也有类似的问题。它通过抑制依赖项中的-ansi 标志来解决,这阻止了c++11的使用。但是我在上面的日志中没有看到这样的标志。
你知道什么会导致这个问题吗?
我有 QMake 3.0 版和 Qt 5.7。
【问题讨论】:
-
你用什么编译器,什么版本的?
-
根据上面的日志,g++被调用了。 g++ --version 提供以下内容: 配置为: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM 版本7.3.0 (clang-703.0.31) 目标:x86_64-apple-darwin15.6.0 线程模型:posix
-
我在这里看不到 gcc 版本号。如果'4.2.1'是你gcc没有c++11的版本号。
-
编译器是clang,在macs上替代gcc (see this thread)
标签: macos qt c++11 qscintilla