MSVC_RUNTIME_LIBRARY

版本 3.15 中添加。

选择 MSVC 运行时库以供编译器使用,这些编译器针对 MSVC ABI。

允许的值是

MultiThreaded

使用 -MT 或同等标记编译,以使用多线程静态链接的运行时库。

MultiThreadedDLL

使用 -MD 或同等标记编译,以使用多线程动态链接的运行时库。

MultiThreadedDebug

使用 -MTd 或同等标记编译,以使用多线程静态链接的运行时库。

MultiThreadedDebugDLL

使用 -MDd 或同等标记编译,以使用多线程动态链接的运行时库。

该值在未针对 MSVC ABI 的编译器上会被忽略,但使用针对 MSVC ABI 的编译器时,不受支持的值会被拒绝并提示错误。

该值也可能是空字符串 (""),在这种情况下,CMake 不会明确添加运行时库选择标记。注意,对于 Visual Studio 生成器,本机构建系统可选择添加其自己的默认运行时库选择标记。

使用 generator expressions 以支持按配置规范。例如,下列代码

add_executable(foo foo.c)
set_property(TARGET foo PROPERTY
  MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")

根据配置为目标 foo 选择带有或不带有调试信息的静态链接的多线程运行时库。

该属性从 CMAKE_MSVC_RUNTIME_LIBRARY 变量的值中进行初始化(如果已设置)。如果未设置该属性,则 CMake 使用默认值 MultiThreaded$<$<CONFIG:Debug>:Debug>DLL 来选择 MSVC 运行时库。

注意

在第一个使用针对 MSVC ABI 的编译器的 project()enable_language() 命令之前,将策略 CMP0091 设置为 NEW 时,此属性才有效。