bob*_*ill 12 macos qt gcc compiler-errors cgal
我安装了brew
CGAL C++ 库。cmake .
在第一个基本示例中完成之后,我做了make
并且遇到了一系列错误,第一个也是最重要的是:
/usr/local/include/QtCore/qglobal.h:96:6: error: "Qt requires a C++17 compiler"
# error "Qt requires a C++17 compiler"
^
Run Code Online (Sandbox Code Playgroud)
这意味着我需要一种方法来告诉 Qt 使用 C++17 编译器。我怎样才能解决这个问题?我是一名工程师,以前从未遇到过类似的问题。以前也有过类似的问题(像这样),但它们是关于 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
Run Code Online (Sandbox Code Playgroud)
Far*_*ani 11
我确实跑去cmake -DCMAKE_CXX_COMPILER="gcc" -DCMAKE_CXX_FLAGS="-std=c++17" .
解决这个问题,但没有帮助。在花了一天时间尝试解决这个问题后,我通过删除 qt ( brew uninstall qt
) 解决了它。我已经安装了两者qt
,并且qt@5
我认为 CMake 感到困惑并从 qt 中获取了一些文件,并从 qt@5 中获取了其他文件。希望这对某人有帮助。
实际上,您需要告诉 cmake 在它生成的编译器命令中激活 c++17 支持。默认情况下,选择 Apple clang,并且附带早期的默认 std 支持。
cmake -DCMAKE_CXX_FLAGS="-std=c++17" .
Run Code Online (Sandbox Code Playgroud)
如果出于某种原因您打算使用gcc
包装器或其他编译器进行编译,您可以让 cmake 知道:
cmake -DCMAKE_CXX_COMPILER="gcc" -DCMAKE_CXX_FLAGS="-std=c++17" .
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4973 次 |
最近记录: |