0

我试图理解为什么使用 /MD 和 /MDd 标志配置的 libmysql CMake 项目不会生成适当的 Visual Studio 10 项目文件。CMAKE_已配置相应的宏,如下所示:

宏

然而,生成的项目仍然显示出意外的运行时库设置:

在此处输入图像描述

CMake GUI 是否由于某种原因不可靠,或者是否有可能另一个选项覆盖了 CRT 设置?

4

1 回答 1

2

我发现 libmysql 的 cmake 项目有一个针对 Windows 的特定于操作系统的 cmake 文件,它强制在生成 Visual Studio 解决方案时使用静态运行时:

 75   # Force static runtime libraries
 83   FOREACH(flag
 84    CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO
 85    CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_DEBUG_INIT
 86    CMAKE_CXX_FLAGS_RELEASE  CMAKE_CXX_FLAGS_RELWITHDEBINFO
 87    CMAKE_CXX_FLAGS_DEBUG  CMAKE_CXX_FLAGS_DEBUG_INIT)
 88    STRING(REPLACE "/MD"  "/MT" "${flag}" "${${flag}}")
 89    SET("${flag}" "${${flag}} /EHsc")
 98   ENDFOREACH()
于 2013-04-26T12:04:00.840 回答