为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么

What is the right way to set MSVC_RUNTIME_LIBRARY for different configurations?

本文关键字:方法 是什么 LIBRARY RUNTIME 配置 设置 MSVC      更新时间:2023-10-16

在windows环境和Visual Studio 2019 IDE中,为两种不同的配置Test_DebugDebug(均为DEBUG_CONFIGURATIONS(设置MSVC_RUNTIME_LIBRARY的正确方法是什么?不知怎么的,这是行不通的:

add_executable(foo foo.c)
set_target_properties(foo PROPERTIES
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>"
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Test_Debug>:Debug>")

有人能给我一个正确的建议吗?

如果在同一个set_target_properties调用中两次设置任何属性,则将覆盖以前的设置。因此,仅应用最后设置:

MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Test_Debug>:Debug>"

如果要在配置为DebugTest_Debug时将MSVC_RUNTIME_LIBRARY设置为MultiThreadedDebug,则可以使用OR逻辑运算符生成器表达式:

$<OR:conditions>

因此,完整的表达式是:

set_target_properties(MyExe1 PROPERTIES
MSVC_RUNTIME_LIBRARY 
"MultiThreaded$<$<OR:$<CONFIG:Debug>,$<CONFIG:Test_Debug>>:Debug>"
)