CUDA_标准¶
在 3.8 版本加入.
构建此目标需要其功能的 CUDA/C++ 标准。
此属性指定构建此目标时请求其功能的 CUDA/C++ 标准。对于某些编译器,这会导致在编译行中添加一个标志,例如“-std=gnu++11”。
支持的值为:
98CUDA C++98。请注意,这在内部映射到与“03”相同的内容。
03CUDA C++03
11CUDA C++11
14CUDA C++14。虽然 CMake 3.8 及更高版本*将“14”识别为有效值,但 CMake 3.9 是第一个包含对任何编译器的支持的版本。
17CUDA 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 变量的值初始化。