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
选项。
可以在 CUDA
或 HIP
语言首先由 project()
或 enable_language()
命令启用之前,明确设置 CMAKE_<LANG>_HOST_COMPILER
变量。这可以通过命令行中的 -DCMAKE_<LANG>_HOST_COMPILER=...
或 工具链文件 中来实现。或者,可以设置 CUDAHOSTCXX
或 HIPHOSTCXX
环境变量来提供一个默认值。
启用 CUDA
或 HIP
语言后,CMAKE_<LANG>_HOST_COMPILER
变量为只读变量并且对其进行的更改是未定义的行为。
注意
由于只有当 CMAKE_<LANG>_COMPILER_ID
为 NVIDIA
时 CMAKE_<LANG>_HOST_COMPILER
才具有意义,因此设置 CMAKE_<LANG>_HOST_COMPILER
时,如果没有同时将 CMAKE_<LANG>_COMPILER
设置为 NVCC,则没有意义。
注意
项目本身不应尝试将 CMAKE_<LANG>_HOST_COMPILER
设置为匹配 CMAKE_CXX_COMPILER
。确保 NVCC 针对的 ABI 与 C++ 编译器相同是最终用户的责任,而不是项目的责任。
注意
使用 Visual Studio 生成器 时将忽略。
请参阅 CMAKE_<LANG>_HOST_COMPILER_ID
和 CMAKE_<LANG>_HOST_COMPILER_VERSION
变量以了解有关默认情况下或由 CMAKE_<LANG>_HOST_COMPILER
nvcc
所使用的宿主编译器的信息。