由于某些原因,下面的 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)
最佳答案
您只是缺少 install(TARGETS...)
中的 RUNTIME DESTINATION
参数命令。
CMake 将共享库视为“DLL 平台”(如 Windows)上的运行时对象。如果您将命令更改为:
install(TARGETS MyLib LIBRARY DESTINATION "lib"
ARCHIVE DESTINATION "lib"
RUNTIME DESTINATION "bin"
COMPONENT library)
然后您应该会发现 MyLib.dll 最终位于“devel_artifacts/bin”中。
关于windows - CMake 安装不在 Windows 上安装库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21592361/