2014-02-06 3 views
2

По какой-то причине ниже в файле cmake не удается установить библиотеки проектов. Он создает каталог в нужном месте и даже рекурсивно устанавливает заголовки ... Но он не может установить библиотеку. Есть идеи?cmake install не устанавливает библиотеки на окнах

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

Вы просто отсутствует RUNTIME DESTINATION аргумент в команде install(TARGETS...).

CMake рассматривает совместно используемые библиотеки как объекты времени выполнения на «платформах DLL», например Windows. Если вы измените команду:

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

, то вы должны найти, что MyLib.dll заканчивается в «devel_artifacts/БИН».

Смежные вопросы