我正在尝试强制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
Run Code Online (Sandbox Code Playgroud)
因为它调用/ usr/bin/c ++而不是/ usr/bin/g ++我同意它仍然使用clang.知道问题是什么?我知道我有g ++,它在/ usr/bin /中.我正在运行Mac OS X 10.8.2
Joh*_*342 13
CMAKE_CXX_COMPILER只能在给定构建目录中第一次运行cmake时设置.在后续运行中,它将被忽略.要更改CMAKE_CXX_COMPILER,首先需要删除构建目录的内容,然后使用该选项再次运行cmake.
资料来源:http://www.cmake.org/Wiki/CMake_Useful_Variables
我相信在第一次运行时仅使用该变量的原因是因为稍后更改它可能会使已经构建的所有内容无效,包括配置检查,因此cmake无论如何都必须从头开始.