从命令行在CMake项目上设置MSVC运行时
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从命令行在CMake项目上设置MSVC运行时相关的知识,希望对你有一定的参考价值。
调用CMake时是否可以在命令行上设置MSVC运行时?我想避免不必更改CMakeList.txt
。
谢谢
CMake不支持从命令行设置MSVC运行时库。实际上,CMake直到最近才获得通过MSVC_RUNTIME_LIBRARY
设置MSVC运行时的支持。但是,您可以使用自定义命令行变量来影响项目中MSVC_RUNTIME_LIBRARY
变量的定义方式。在您的CMake代码中添加以下内容:
MSVC_RUNTIME_LIBRARY
现在,在if(MY_MSVC_RUNTIME STREQUAL "MT")
message("Setting MT(d)")
set_property(TARGET MyTarget PROPERTY
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
elseif(MY_MSVC_RUNTIME STREQUAL "MD")
message("Setting MD(d)")
set_property(TARGET MyTarget PROPERTY
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
else()
message("Setting MT(d) (default)")
set_property(TARGET MyTarget PROPERTY
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()
变量设置为“ MT”或“ MD”的情况下,从命令行调用cmake
:
MY_MSVC_RUNTIME
这使您可以从命令行在cmake -DMY_MSVC_RUNTIME=MD ..
和MultiThreaded
之间切换。 MultiThreadedDLL
部分将根据您的Visual Studio 解决方案配置(调试或发布)自动添加或排除。
以上是关于从命令行在CMake项目上设置MSVC运行时的主要内容,如果未能解决你的问题,请参考以下文章
使用命令行在 Visual Studio 2019 中打开 CMake 项目