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