【问题标题】:How do I force cmake to link MSVCR.dll statically in windows XP?如何强制 cmake 在 Windows XP 中静态链接 MSVCR.dll?
【发布时间】:2010-04-27 14:39:36
【问题描述】:

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

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

【问题讨论】:

    标签: windows linker cmake


    【解决方案1】:

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

    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") 万一() 万一() # 其他窗口特定标志 万一()

    【讨论】:

      【解决方案2】:
      set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
      set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-30
        • 1970-01-01
        • 2015-07-20
        • 2011-04-11
        相关资源
        最近更新 更多