我试图强制cmake用g构建我的cpp代码,默认情况下它使用clang.所以我使用:cmake -D CMAKE_CXX_COMPILER = g ../src/CMakeLists.txt之后,cmake检查
gcc和g(成功),但是仍然使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我同意它仍然使用cl.任何想法有什么问题?我知道我有g,它在/usr/bin /.
我正在运行Mac OS X 10.8.2
解决方法
CMAKE_CXX_COMPILER只能在首次在给定的构建目录中运行cmake时进行设置.在后续运行中,它被忽略.为了更改CMAKE_CXX_COMPILER,您首先需要删除构建目录的内容,然后再次使用该选项运行cmake.
资料来源:http://www.cmake.org/Wiki/CMake_Useful_Variables
我相信在第一次运行时仅使用该变量的原因是因为稍后更改可能会使已经构建的所有内容(包括配置检查)无效,所以cmake必须从头开始.