为什么这个CMake项目没有设置适当的MSVC运行时?

时间:2013-04-25 10:44:23

标签: cmake msvcrt libmysql

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

macros

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

enter image description here

由于某些原因,CMake GUI是否不可靠,或者是否有其他选项可能会覆盖CRT设置?

1 个答案:

答案 0 :(得分: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()