【发布时间】:2010-04-27 14:39:36
【问题描述】:
目前它正在动态链接它,给我带来了很多麻烦(缺少 msvcr80.dll)。
我应该如何指示 cmake 静态链接它?
【问题讨论】:
目前它正在动态链接它,给我带来了很多麻烦(缺少 msvcr80.dll)。
我应该如何指示 cmake 静态链接它?
【问题讨论】:
这就是我为我的项目所做的:
set (BUILD_SHARED_LIBS FALSE) # 应该强制库是静态的 如果 (WIN32) if (${CMAKE_GENERATOR} MATCHES "Visual Studio 9 2008") # 由于某些原因 VS 9 生成器不会覆盖标志 # 但是生成器 VS 2010 可以 如果(BUILD_SHARED_LIBS) 设置(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -MDd") 设置(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -MDd") 设置(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -MD") 设置(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -MD") 别的() 设置(CMAKE_C_FLAGS_DEBUG“${CMAKE_C_FLAGS_DEBUG} -MTd”) 设置(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -MTd") 设置(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -MT") 设置(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -MT") 万一() 万一() # 其他窗口特定标志 万一()【讨论】:
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
【讨论】: