【问题标题】:CMake install is not installing libraries on WindowsCMake install 未在 Windows 上安装库
【发布时间】:2014-02-06 01:38:01
【问题描述】:

由于某种原因,以下 CMake 文件无法安装项目库。它在正确的位置创建目录,甚至递归地安装标头......但它无法安装库。如何解决这个问题?

cmake_minimum_required(VERSION 2.8)
project(MyLib)

include_directories(include)
add_library(MyLib SHARED source/stuff.cpp)

if(CMAKE_SYSTEM MATCHES "Windows")
target_link_libraries(MyLib DbgHelp ws2_32 iphlpapi)
set(CMAKE_INSTALL_PREFIX "../../devel_artifacts")
endif(CMAKE_SYSTEM MATCHES "Windows")

install(TARGETS MyLib LIBRARY DESTINATION "lib"
                      ARCHIVE DESTINATION "lib"
                      COMPONENT library)
install(DIRECTORY include/${PROJECT_NAME} DESTINATION include)

【问题讨论】:

    标签: windows cmake


    【解决方案1】:

    您只是缺少 install(TARGETS...) 命令中的 RUNTIME DESTINATION 参数。

    CMake 将共享库视为 Windows 等“DLL 平台”上的运行时对象。如果您将命令更改为:

    install(TARGETS MyLib LIBRARY DESTINATION "lib"
                          ARCHIVE DESTINATION "lib"
                          RUNTIME DESTINATION "bin"
                          COMPONENT library)
    

    那么您应该会发现 MyLib.dll 最终位于“devel_artifacts/bin”中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      • 2020-01-15
      • 1970-01-01
      • 1970-01-01
      • 2016-07-13
      相关资源
      最近更新 更多