从命令行在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 项目

使用 cmake 和命令行构建 MSVC 项目

如何在 MSVC 2019 中的 CMake 管理的 C++ 项目中将命令行启动参数添加到发布目标?

找不到有效的 MSVC 版本

从命令行在脚本中运行的 Docker 命令

如何从命令行在 Windows 上运行 .class 文件?