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
变量的值,此属性将根据该值进行初始化.