【发布时间】:2012-11-30 20:52:21
【问题描述】:
我正在尝试强制 cmake 使用 g++ 构建我的 cpp 代码,因为默认情况下它使用 clang。所以我使用:cmake -D CMAKE_CXX_COMPILER=g++ ../src/CMakeLists.txt,之后 cmake 检查 gcc 和 g++(成功),但仍然 make VERBOSE=1 产生
/usr/bin/c++ -o CMakeFiles/trial_cpp.dir/trial.cpp.o -c "/Users/Kuba/Code/Sketchpad/Trial project/src/trial.cpp"
Linking CXX executable trial_cpp
/opt/etlocal/bin/cmake -E cmake_link_script CMakeFiles/trial_cpp.dir/link.txt --verbose=1
/usr/bin/c++ -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/trial_cpp.dir/trial.cpp.o -o trial_cpp
因为它调用 /usr/bin/c++ 而不是 /usr/bin/g++ 我同意它仍然使用 clang。知道有什么问题吗?我知道我有 g++,它在 /usr/bin/ 中。 我正在运行 Mac OS X 10.8.2
【问题讨论】:
-
可能是一个愚蠢的问题,但很多人忘记了。在使用该配置选项运行 cmake 之前,您是否删除了构建目录的全部内容?一旦为给定的构建目录设置了一次该变量(自动或手动),它将在以后的运行中被忽略,因此必须在第一次运行时使用该选项,并且只能在第一次运行时使用。
-
@John5342 - 成功了!我是一个 cmake 新手,所以不知道需要清理构建目录。谢谢。
-
因为我是偶然正确的,所以我也将其添加为正确的答案,包括来源。当我第一次学习 cmake 时,我发现手册和引用的页面非常有用。