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