【问题标题】:change cmake compiler from clang to g++ for mac将 cmake 编译器从 clang 更改为 g++ for mac
【发布时间】:2018-03-10 07:59:12
【问题描述】:

我正在使用一个非常不方便的软件,它不支持 clang。所以,我需要更改我的 cmake 编译器,因为我几乎在所有地方都阅读过,在这里How can I make CMake use GCC instead of Clang on Mac OS X?,我尝试了:

cmake -DCMAKE_CXX_COMPILER=/usr/bin/g++

但是,我仍然收到此错误

CMake Error at CMakeLists.txt:59 (message):

GAMBIT does not support the Clang compiler. Please choose another compiler.

-- Configuring incomplete, errors occurred!

有什么建议吗?

【问题讨论】:

  • 使用cmake-gui 并在那里更改设置?
  • 尝试在 CMakeLists.txt 文件中设置 C 和 C++ 编译器:SET(CMAKE_C_COMPILER /path/to/c/compiler) SET(CMAKE_CXX_COMPILER /path/to/cpp/compiler)
  • 检查你是否安装了 real gcc。 AFAIR Xcode 不再提供 gcc,运行 gcc 会调用 clang
  • g++ --version 应该消除任何混淆。
  • 我有两个 g++ 一个 /usr/bin/g++ 是 clang 的符号链接,另一个是 /opt/local/bin/g++ 这是我安装的 g++!

标签: c++ macos gcc compiler-errors cmake


【解决方案1】:

在第一次运行 CMake 之前,我发现设置环境变量 CCCXX 很容易弄乱CMAKE_CXX_COMPILER。另请注意,设置两者可能是个好主意。所以进入一个空的二进制目录并运行:

CC=/usr/bin/gcc CXX=/usr/bin/g++ cmake ...

还要确保 /usr/bin/gcc 真的是 GCC 而不是例如一个符号链接或以其他方式伪装的 Clang(我相信这样的 setup 可以存在于 MacOS 世界中)。

【讨论】:

【解决方案2】:

您可能还需要设置CMAKE_C_COMPILER,即:

cmake -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_C_COMPILER=/usr/bin/gcc

确实,看 Gambit 源代码,好像大部分是 C。

就个人而言,我通常喜欢同时设置两者,以防万一。

【讨论】:

  • 我的 /usr/bin/g++ 实际上是一个指向 clang 的符号链接,而我的 g++ 的真实地址是 /opt/local/bin/g++!默认的 /usr/bin/g++ 是 xcode 自带的
猜你喜欢
  • 1970-01-01
  • 2019-01-05
  • 1970-01-01
  • 1970-01-01
  • 2011-02-02
  • 2014-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多