2014-02-06 192 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」結束。