CMAKE_<LANG>_HOST_COMPILER

Added in version 3.10: CMAKE_CUDA_HOST_COMPILER

Added in version 3.28: CMAKE_HIP_HOST_COMPILER

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

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

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

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

注意

由于只有当 CMAKE_<LANG>_COMPILER_IDNVIDIA 时,CMAKE_<LANG>_HOST_COMPILER 才有意义,因此在不将 CMAKE_<LANG>_COMPILER 也设置为 NVCC 的情况下设置 CMAKE_<LANG>_HOST_COMPILER 是没有意义的。

注意

项目不应尝试将 CMAKE_<LANG>_HOST_COMPILER 设置为匹配 CMAKE_CXX_COMPILER 本身。最终用户的责任,而不是项目的责任,是确保 NVCC 的目标 ABI 与 C++ 编译器相同。

注意

当使用 Visual Studio 生成器 时,此变量将被忽略。

请参阅 CMAKE_<LANG>_HOST_COMPILER_IDCMAKE_<LANG>_HOST_COMPILER_VERSION 变量,以获取有关 nvcc 使用的主机编译器的信息,无论是默认的还是由 CMAKE_<LANG>_HOST_COMPILER 指定的。