如何修复 "Qt requires a C++17 compiler" 错误?
How to fix "Qt requires a C++17 compiler" error?
我安装了 brew
CGAL C++ 库。
在 first basic example 中执行 cmake .
之后,我执行 make
并且出现了一系列错误,第一个也是最重要的错误是:
/usr/local/include/QtCore/qglobal.h:96:6: error: "Qt requires a C++17 compiler"
# error "Qt requires a C++17 compiler"
^
这意味着我需要一种方法来告诉 Qt 使用 C++17 编译器。我怎样才能解决这个问题?我是一名工程师,以前从未遇到过类似问题。之前有过类似的问题(比如 this),但它们是关于 Windows.
我使用的是 MacOS BigSur,11.6.2。和 gcc --version
returns
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 13.0.0 (clang-1300.0.29.30)
Target: x86_64-apple-darwin20.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
实际上,您需要告诉 cmake 在它生成的编译器命令中激活 c++17 支持。默认情况下,选择了 Apple clang,它带有较早的默认标准支持。
cmake -DCMAKE_CXX_FLAGS="-std=c++17" .
如果出于某种原因你打算使用 gcc
包装器或其他编译器进行编译,你可以让 cmake 知道:
cmake -DCMAKE_CXX_COMPILER="gcc" -DCMAKE_CXX_FLAGS="-std=c++17" .
我安装了 brew
CGAL C++ 库。
在 first basic example 中执行 cmake .
之后,我执行 make
并且出现了一系列错误,第一个也是最重要的错误是:
/usr/local/include/QtCore/qglobal.h:96:6: error: "Qt requires a C++17 compiler"
# error "Qt requires a C++17 compiler"
^
这意味着我需要一种方法来告诉 Qt 使用 C++17 编译器。我怎样才能解决这个问题?我是一名工程师,以前从未遇到过类似问题。之前有过类似的问题(比如 this),但它们是关于 Windows.
我使用的是 MacOS BigSur,11.6.2。和 gcc --version
returns
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 13.0.0 (clang-1300.0.29.30)
Target: x86_64-apple-darwin20.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
实际上,您需要告诉 cmake 在它生成的编译器命令中激活 c++17 支持。默认情况下,选择了 Apple clang,它带有较早的默认标准支持。
cmake -DCMAKE_CXX_FLAGS="-std=c++17" .
如果出于某种原因你打算使用 gcc
包装器或其他编译器进行编译,你可以让 cmake 知道:
cmake -DCMAKE_CXX_COMPILER="gcc" -DCMAKE_CXX_FLAGS="-std=c++17" .