MSVC_RUNTIME_LIBRARY¶
版本 3.15 新增。
为以 MSVC ABI 为目标编译器的编译器选择 MSVC 运行时库。
允许的值为
MultiThreaded
使用
-MT
或等效标志进行编译,以使用多线程静态链接运行时库。MultiThreadedDLL
使用
-MD
或等效标志进行编译,以使用多线程动态链接运行时库。MultiThreadedDebug
使用
-MTd
或等效标志进行编译,以使用多线程静态链接运行时库。MultiThreadedDebugDLL
使用
-MDd
或等效标志进行编译,以使用多线程动态链接运行时库。
对于不以 MSVC ABI 为目标编译器的编译器,此值将被忽略,但当使用以 MSVC ABI 为目标编译器的编译器时,不受支持的值将被视为错误。
该值也可以是空字符串 (""
),在这种情况下,CMake 不会显式添加运行时库选择标志。请注意,对于 Visual Studio Generators,本机构建系统可能会选择添加自己的默认运行时库选择标志。
使用 生成器表达式
来支持按配置指定。例如,以下代码
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 运行时库。
注意
此属性仅在策略 CMP0091
设置为 NEW
并且在此之前首次调用 project()
或 enable_language()
命令来启用使用以 MSVC ABI 为目标编译器的语言时才有效。