2014-02-06 66 views
2

由于某些原因,下面的cmake文件无法安装项目库。它在正确的位置创建目录,并且它甚至递归地安装标题...但它无法安装该库。有任何想法吗?cmake安装不在Windows上安装库

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) 

回答

5

你只是缺少在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”结束。