Я впервые пытаюсь это сделать, так что это может быть немного новым вопросом ie. Я использую ubuntu / linux, и у меня есть библиотека C ++ с именем wmrde, которую я пытаюсь сделать "устанавливаемой" с помощью CMake. Итак, у меня есть файл CMakeLists.txt, настроенный так, что если вы запускаете команду cmake из командной строки, а затем «make install», она устанавливает все файлы библиотеки в / usr / local / lib / wmrde /, устанавливает заголовок файлы в / usr / local / include / wmrde / и устанавливают файл wmrdeConfig.cmake в / usr / local / lib / cmake / wmrde /. Все это работает правильно.
Теперь у меня есть отдельный проект, и я хочу иметь возможность ссылаться на эту библиотеку wmrde. Поэтому я поместил FIND_PACKAGE (wmrde) в файл CMakeLists.txt для этого другого проекта. Но когда я пытаюсь его собрать, я получаю сообщение об ошибке:
Could not find a package configuration file provided by "wmrde" with any of the following names:
wmrdeConfig.cmake
wmrde-config.cmake
Я проверил и файлы /usr/local/lib/cmake/wmrde/wmrdeConfig.cmake и / usr / local / lib / cmake / wmrde / wmrdeConfigVersion.cmake оба существуют, поэтому я не уверен, почему это утверждение FIND_PACKAGE не может его найти.
Итак, мой вопрос, я пропустил какой-либо шаг в установке? Я бы предпочел, чтобы я мог найти решение, которое включает в себя только модификацию этой библиотеки wmrde, так как я буду делиться этой библиотекой и хочу, чтобы другие люди могли легко включать ее в свои собственные проекты.
Это это полный файл CMakeLists.txt для моей библиотеки - это довольно просто:
# Setup
cmake_minimum_required(VERSION 2.8.11)
project(wmrde)
set(WMRDE_VERSION 1.0.0)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
set(CMAKE_CXX_STANDARD 11)
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib/wmrde")
# Building the library
add_library(wmrde SHARED
wmrde.cpp
)
# Installation stuff
FILE(GLOB headerFiles "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
INSTALL(FILES ${headerFiles} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/wmrde")
INSTALL(TARGETS wmrde LIBRARY DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/wmrde")
SET(INSTALL_CMAKE_DIR "${CMAKE_INSTALL_PREFIX}/lib/cmake/wmrde")
CONFIGURE_FILE("wmrdeConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/wmrdeConfig.cmake")
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/wmrdeConfig.cmake DESTINATION ${INSTALL_CMAKE_DIR})
CONFIGURE_FILE(wmrdeConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/wmrdeConfigVersion.cmake")
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/wmrdeConfigVersion.cmake DESTINATION ${INSTALL_CMAKE_DIR})