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
選項。
在透過 project()
或 enable_language()
命令首次啟用 CUDA 或 HIP 之前,可以明確設定 CMAKE_<LANG>_HOST_COMPILER
變數。這可以透過命令列上的 -DCMAKE_<LANG>_HOST_COMPILER=...
或在工具鏈檔案中完成。或者,也可以設定 CUDAHOSTCXX
或 HIPHOSTCXX
環境變數來提供預設值。
一旦啟用 CUDA 或 HIP 語言,CMAKE_<LANG>_HOST_COMPILER
變數會變成唯讀,變更它的行為是未定義的。
注意
由於 CMAKE_<LANG>_HOST_COMPILER
只有在 CMAKE_<LANG>_COMPILER_ID
為 NVIDIA
時才有意義,因此在不將 CMAKE_<LANG>_COMPILER
設定為 NVCC 的情況下設定 CMAKE_<LANG>_HOST_COMPILER
是沒有意義的。
注意
專案不應該嘗試自行設定 CMAKE_<LANG>_HOST_COMPILER
來符合 CMAKE_CXX_COMPILER
。確保 NVCC 目標與 C++ 編譯器相同的 ABI 是最終使用者的責任,而不是專案的責任。
注意
當使用 Visual Studio 產生器 時會被忽略。
請參閱 CMAKE_<LANG>_HOST_COMPILER_ID
和 CMAKE_<LANG>_HOST_COMPILER_VERSION
變數,以取得關於 nvcc
所使用的主機編譯器資訊,無論是預設的還是由 CMAKE_<LANG>_HOST_COMPILER
指定的。