2

我有一个 CMakeLists.txt 指定多个可执行文件。只有其中一个项目,我想使用静态运行时。

我在这里找到了这个解决方案:在 CMake 中设置 MSVC 运行时

这涉及更改 CMAKE_CXX_FLAGS 和 CMAKE_C_FLAGS(以及其他)。

但是,这样做会更改每个项目的运行时库。通过我的测试,无论你在哪里设置这些,它都会改变一切。

有没有办法只为一个项目做到这一点?

4

1 回答 1

2

如果您为“静态运行时”可执行文件提供自己的 CMakeLists.txt 文件并通过add_subdirectory.

在子目录 CMakeLists.txt 中设置的变量不会影响父范围内的类似变量,因此您可以在 parent 中有/MDor/MDd标志,并在子目录CMAKE_<LANG>_FLAGS_<BUILD>中用/MTor替换它们。/MTd

请注意,即使调用了该命令add_subdirectory,它也不需要引用文件系统意义上的实际子目录 - 只是具有自己的 CMakeLists.txt 的某个其他目录。

于 2013-03-17T23:04:08.370 回答