CMake 生成器决定使用哪个编译器的过程如下:
-
默认编译器:CMake 会尝试使用系统默认的编译器。例如,在 Unix 系统上,通常是
gcc
和g++
,而在 Windows 上则可能是cl.exe
(MSVC)。 -
环境变量:CMake 会检查环境变量
CC
和CXX
来决定使用哪个 C 和 C++ 编译器。export CC=/usr/bin/clang export CXX=/usr/bin/clang++
-
CMake 工具链文件:如果使用了 CMake 工具链文件(toolchain file),则该文件中指定的编译器将会被使用。工具链文件可以通过
CMAKE_TOOLCHAIN_FILE
变量指定,例如:cmake -DCMAKE_TOOLCHAIN_FILE=path/to/toolchain.cmake ..
-
命令行选项:可以在调用 CMake 时直接通过命令行选项指定编译器,例如:
cmake -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ ..