CMAKE_<LANG>_HOST_COMPILER¶
3.10 版本新增: CMAKE_CUDA_HOST_COMPILER
3.28 版本新增: CMAKE_HIP_HOST_COMPILER
当 <LANG> 为 CUDA 或 HIP 时,此变量可用。
当 CMAKE_<LANG>_COMPILER_ID 为 NVIDIA 时,CMAKE_<LANG>_HOST_COMPILER 用于选择在编译 CUDA 或 HIP 语言文件的主机代码时使用的编译器可执行文件。这对应于 nvcc -ccbin 选项。
可以在首次通过 project() 或 enable_language() 命令启用 CUDA 或 HIP 之前显式设置 CMAKE_<LANG>_HOST_COMPILER 变量。这可以通过命令行或 工具链文件 中的 -DCMAKE_<LANG>_HOST_COMPILER=... 来完成。或者,可以设置 CUDAHOSTCXX 或 HIPHOSTCXX 环境变量来提供默认值。
一旦启用了 CUDA 或 HIP 语言,CMAKE_<LANG>_HOST_COMPILER 变量将变为只读,对其的更改将是未定义行为。
注意
由于 CMAKE_<LANG>_HOST_COMPILER 仅在 CMAKE_<LANG>_COMPILER_ID 为 NVIDIA 时才有意义,因此在不设置 CMAKE_<LANG>_COMPILER 为 NVCC 的情况下设置 CMAKE_<LANG>_HOST_COMPILER 是没有意义的。
注意
项目不应尝试自行将 CMAKE_<LANG>_HOST_COMPILER 设置为与 CMAKE_CXX_COMPILER 匹配。确保 NVCC 目标 ABI 与 C++ 编译器 ABI 相同的责任在于最终用户,而不是项目。
注意
在使用 Visual Studio 生成器 时将被忽略。
有关 nvcc 使用的主机编译器(无论是默认的还是由 CMAKE_<LANG>_HOST_COMPILER 指定的)的信息,请参阅 CMAKE_<LANG>_HOST_COMPILER_ID 和 CMAKE_<LANG>_HOST_COMPILER_VERSION 变量。