如何强制cmake在windows XP中静态链接MSVCR.dll?

如何强制cmake在windows XP中静态链接MSVCR.dll?,windows,linker,cmake,Windows,Linker,Cmake,目前它正在动态链接它,给我带来了很多麻烦(缺少msvcr80.dll) 我应该如何指示cmake静态链接它?这是我为我的项目所做的: set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT") set (BUILD_SHARED_LIBS FALSE) # should force the libraries to

目前它正在动态链接它,给我带来了很多麻烦(缺少msvcr80.dll


我应该如何指示cmake静态链接它?

这是我为我的项目所做的:

set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
set (BUILD_SHARED_LIBS FALSE) # should force the libraries to be static if (WIN32) if (${CMAKE_GENERATOR} MATCHES "Visual Studio 9 2008") # for some reasons VS 9 generator doesn't overwrite the flags # but generator VS 2010 does if (BUILD_SHARED_LIBS) set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -MDd") set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -MDd") set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -MD") set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -MD") else() set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -MTd") set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -MTd") set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -MT") set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -MT") endif() endif() # other windows specific flags endif() set(BUILD_SHARED_LIBS FALSE)#应强制库为静态库 如果(WIN32) 如果(${CMAKE_GENERATOR}与“Visual Studio 9 2008”匹配) #由于某些原因,VS 9生成器不会覆盖标志 #但发电机VS2010确实如此 if(构建共享库) set(CMAKE_C_FLAGS_DEBUG“${CMAKE_C_FLAGS_DEBUG}-MDd”) set(CMAKE_CXX_FLAGS_DEBUG“${CMAKE_C_FLAGS_DEBUG}-MDd”) 设置(CMAKE_C_标志发布“${CMAKE_C_标志发布}-MD”) 设置(CMAKE_CXX_FLAGS_RELEASE“${CMAKE_C_FLAGS_RELEASE}-MD”) else() set(CMAKE_C_FLAGS_DEBUG“${CMAKE_C_FLAGS_DEBUG}-MTd”) set(CMAKE_CXX_FLAGS_DEBUG“${CMAKE_C_FLAGS_DEBUG}-MTd”) 设置(CMAKE_C_标志发布“${CMAKE_C_标志发布}-MT”) 设置(CMAKE_CXX_FLAGS_RELEASE“${CMAKE_C_FLAGS_RELEASE}-MT”) endif() endif() #其他windows特定标志 endif()