我正在尝试在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-version-min = 10.8 -fvisibility = hidden -fvisibility-inlines-hidden -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支持"
#error" Qt需要C ++ 11支持"
^
/Applications/Utilities/Qt/5.7/clang_64/lib/QtCore.framework/Headers/qbasicatomic.h:90:13:错误:
未知类型名称' QAtomicOps'
typedef QAtomicOps Ops;
关于这个问题的其他问题,我已经添加了
\# 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。
答案 0 :(得分:4)
感谢上面关于所用编译器的评论,我在this thread上发现为了在Mac上使用带有clang / llvm的c ++ 11,有必要使用库-stdlib = libc ++代替旧的libstdc ++。
通过添加
解决了这个问题QMAKE_LFLAGS += -stdlib=libc++
QMAKE_CXXFLAGS += -stdlib=libc++
到.pro文件。