CUDA_STANDARD¶
新增於版本 3.8。
用於建置此目標的 CUDA/C++ 標準,其功能需求。
此屬性指定用於建置此目標的 CUDA/C++ 標準,及其功能需求。對於某些編譯器,這會導致在編譯行中加入諸如 -std=gnu++11
的旗標。
支援的值為:
98
CUDA C++98。請注意,這在內部對應到與
03
相同。03
CUDA C++03
11
CUDA C++11
14
CUDA C++14。雖然 CMake 3.8 及更高版本識別
14
為有效值,但 CMake 3.9 是第一個包含任何編譯器支援的版本。17
CUDA C++17。雖然 CMake 3.8 及更高版本識別
17
為有效值,但 CMake 3.18 是第一個包含任何編譯器支援的版本。20
新增於版本 3.12。
CUDA C++20。雖然 CMake 3.12 及更高版本識別
20
為有效值,但 CMake 3.18 是第一個包含任何編譯器支援的版本。23
新增於版本 3.20。
CUDA C++23
26
新增於版本 3.25。
CUDA C++26。CMake 3.25 及更高版本識別
26
為有效值,但沒有任何版本支援任何編譯器。
如果請求的值沒有導致針對使用的編譯器加入編譯旗標,則會改為加入先前的標準旗標。這表示使用
set_property(TARGET tgt PROPERTY CUDA_STANDARD 11)
如果使用的編譯器不支援 -std=gnu++11
或等效旗標,將不會導致錯誤或警告,而是會加入 -std=gnu++03
旗標(如果支援)。此「衰退」行為可以使用 CUDA_STANDARD_REQUIRED
目標屬性來控制。此外,CUDA_EXTENSIONS
目標屬性可用於控制是否在每個目標啟用編譯器特定的擴充功能。
有關編譯功能和支援的編譯器列表,請參閱 cmake-compile-features(7)
手冊。
如果建立目標時設定了 CMAKE_CUDA_STANDARD
變數,則此屬性會由該變數的值初始化。