CMake find_package не находит библиотеку, добавленную с помощью add_subdirectory - PullRequest
0 голосов
/ 14 июня 2019

Я создаю тестовый проект для изучения библиотек zeromq с cppmq, и я хочу включить обе библиотеки в качестве подкаталогов. В настоящее время у меня есть следующая структура:

|-- CMakeLists.txt
|-- deps
|   |-- cppzmq-4.3.0
|   |   |-- CMakeLists.txt
|   |   `-- rest of files
|   |-- zeromq-4.3.1
|   |   |-- CMakeLists.txt
|   |   `-- rest of files
`-- main.cpp

Я пробовал со следующим CMakeLists:

cmake_minimum_required(VERSION 3.14)
project(PruebaZeroMQ)

set(CMAKE_CXX_STANDARD 11)
add_subdirectory(deps/zeromq-4.3.1)
add_subdirectory(deps/cppzmq-4.3.0)

add_executable(PruebaZeroMQ main.cpp)

target_link_libraries(PruebaZeroMQ
        libzmq
        cppzmq)

Когда я запускаю cmake, я получаю следующую ошибку:

-- Detected CPPZMQ Version - 4.3.0
-- CMake libzmq package not found, trying again with pkg-config (normal install of zeromq)
CMake Error at deps/cppzmq-4.3.0/CMakeLists.txt:20 (message):
  ZeroMQ was not found, neither as a CMake package nor via pkg-config

cppmq зависит от zeromq и выглядит так, как будто он пытается загрузить его, используя find_package, поэтому я попытался изменить CMAKE_MODULE_PATH, чтобы он мог найти файл ZeroMQConfig.cmake, но он тоже не работает, с та же ошибка:

add_subdirectory(deps/zeromq-4.3.1)
list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_BINARY_DIR}/deps/zeromq-4.3.1 ")

add_subdirectory(deps/cppzmq-4.3.0)

Есть ли способ достичь этого? Я бы предпочел не устанавливать библиотеки в масштабе всей системы.

1 Ответ

0 голосов
/ 14 июня 2019

После попытки вручную find_package, CMake показал следующее сообщение об ошибке:

  Add the installation prefix of "ZeroMQ" to CMAKE_PREFIX_PATH or set
  "ZeroMQ_DIR" to a directory containing one of the above files.

Итак, я попытался, используя:

set(ZeroMQ_DIR ${CMAKE_CURRENT_BINARY_DIR}/deps/zeromq-4.3.1)

И это сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...