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
选项。
可以通过在命令行或 工具链文件 中使用 -DCMAKE_<LANG>_HOST_COMPILER=...
的方式,在首次通过 project()
或 enable_language()
命令启用 CUDA 或 HIP 语言之前显式设置 CMAKE_<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
变量。