我正在制作一个模板CMake文件,用于以后的项目。
我本人非常喜欢使用clang,但我不想强迫每个使用我的项目的人也使用clang。
最好的情况是如果clang不存在,它可以简单地使用任何编译器。
我找到了以下代码行,但在我的测试中似乎没有起作用。
set(CMAKE_C_COMPILER_NAMES clang gcc icc cc)
set(CMAKE_CXX_COMPILER_NAMES clang++ g++ icpc c++ cxx)
以下是按照优先次序排序的最佳方式:
- clang
- gcc
- 安装了什么就使用什么
cmake -D
命令行选项中将Clang设置为编译器,如此处所建议的那样。我不会强加编译器偏好于项目中的其他人,只需让CMake为其环境选择最佳编译器即可。我不确定您在哪里看到这些变量,例如CMAKE_CXX_COMPILER_NAMES
,但它们不是像CMAKE_CXX_COMPILER
一样的特殊CMake变量。 - Kevin