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 选项。

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