【问题标题】:How to fix "Qt requires a C++17 compiler" error?如何修复“Qt 需要 C++17 编译器”错误?
【发布时间】:2022-01-20 06:18:12
【问题描述】:

我安装了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 返回

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

【问题讨论】:

标签: macos qt gcc compiler-errors cgal


【解决方案1】:

实际上,您需要告诉 cmake 在它生成的编译器命令中激活 c++17 支持。默认情况下,Apple clang 被选中,并且带有较早的默认 std 支持。

cmake -DCMAKE_CXX_FLAGS="-std=c++17" .

如果出于某种原因您打算使用 gcc 包装器或其他编译器进行编译,您可以让 cmake 知道:

cmake -DCMAKE_CXX_COMPILER="gcc" -DCMAKE_CXX_FLAGS="-std=c++17" .

【讨论】:

    猜你喜欢
    • 2022-01-19
    • 2021-11-29
    • 1970-01-01
    • 2020-07-25
    • 2021-08-24
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多