我试图理解为什么使用 /MD 和 /MDd 标志配置的 libmysql CMake 项目不会生成适当的 Visual Studio 10 项目文件。CMAKE_
已配置相应的宏,如下所示:
然而,生成的项目仍然显示出意外的运行时库设置:
CMake GUI 是否由于某种原因不可靠,或者是否有可能另一个选项覆盖了 CRT 设置?
我发现 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()