CMAKE_<LANG>_HOST_COMPILER

3.10 版新增: CMAKE_CUDA_HOST_COMPILER

3.28 版新增: CMAKE_HIP_HOST_COMPILER

<LANG>CUDAHIP 时,可以使用此变量。

CMAKE_<LANG>_COMPILER_IDNVIDIA 时,CMAKE_<LANG>_HOST_COMPILER 会选择编译 CUDAHIP 语言文件的主机代码时使用的编译器可执行文件。这对应于 nvcc -ccbin 选项。

可以通过在命令行或 工具链文件 中使用 -DCMAKE_<LANG>_HOST_COMPILER=... 的方式,在首次通过 project()enable_language() 命令启用 CUDA 或 HIP 语言之前显式设置 CMAKE_<LANG>_HOST_COMPILER 变量。或者,可以通过设置 CUDAHOSTCXXHIPHOSTCXX 环境变量来提供默认值。

一旦启用了 CUDA 或 HIP 语言,CMAKE_<LANG>_HOST_COMPILER 变量将变为只读,对其进行更改属于未定义行为。

注意

由于 CMAKE_<LANG>_HOST_COMPILER 仅在 CMAKE_<LANG>_COMPILER_IDNVIDIA 时才有意义,因此在不将 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_IDCMAKE_<LANG>_HOST_COMPILER_VERSION 变量。