CMAKE_MSVC_RUNTIME_LIBRARY¶
版本 3.15 新增。
为以 MSVC ABI 为目标的编译器选择 MSVC 运行时库。此变量用于在创建所有目标时初始化 MSVC_RUNTIME_LIBRARY 属性。它还通过 try_compile() 命令传播到测试项目中。
允许的值为
MultiThreaded使用
-MT或等效标志进行编译,以使用多线程静态链接运行时库。MultiThreadedDLL使用
-MD或等效标志进行编译,以使用多线程动态链接运行时库。MultiThreadedDebug使用
-MTd或等效标志进行编译,以使用多线程静态链接运行时库。MultiThreadedDebugDLL使用
-MDd或等效标志进行编译,以使用多线程动态链接运行时库。
对于不以 MSVC ABI 为目标编译器的编译器,此值将被忽略,但当使用以 MSVC ABI 为目标编译器的编译器时,不受支持的值将被视为错误。
该值也可以是空字符串(""),在这种情况下,CMake 不会显式添加运行时库选择标志。请注意,对于 Visual Studio Generators,原生构建系统可能会选择添加自己的默认运行时库选择标志。
使用 生成器表达式 来支持按配置指定。例如,以下代码
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
为所有后续目标选择多线程静态链接运行时库,根据配置包含或不包含调试信息。
如果未设置此变量,则 MSVC_RUNTIME_LIBRARY 目标属性将不会自动设置。如果未设置该属性,CMake 将使用默认值 MultiThreaded$<$<CONFIG:Debug>:Debug>DLL 来选择 MSVC 运行时库。
注意
此变量仅在策略 CMP0091 设置为 NEW 且在第一个启用使用以 MSVC ABI 为目标的编译器的语言的 project() 或 enable_language() 命令之前有效。