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 目標與 C++ 編譯器相同的 ABI 是最終使用者的責任,而不是專案的責任。

注意

當使用 Visual Studio 產生器 時會被忽略。

請參閱 CMAKE_<LANG>_HOST_COMPILER_IDCMAKE_<LANG>_HOST_COMPILER_VERSION 變數,以取得關於 nvcc 所使用的主機編譯器資訊,無論是預設的還是由 CMAKE_<LANG>_HOST_COMPILER 指定的。