CMake';s find_包找不到添加了add_子目录的库

CMake';s find_包找不到添加了add_子目录的库,cmake,Cmake,我正在构建一个测试项目,用cppmq学习库zeromq,我希望将这两个库都包含为子目录。我目前的结构如下: |-- CMakeLists.txt |-- deps | |-- cppzmq-4.3.0 | | |-- CMakeLists.txt | | `-- rest of files | |-- zeromq-4.3.1 | | |-- CMakeLists.txt | | `-- rest of files `-- main.cpp 我尝试了以下

我正在构建一个测试项目,用
cppmq
学习库
zeromq
,我希望将这两个库都包含为子目录。我目前的结构如下:

|-- 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_路径
,以便它能够找到
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)

有没有办法做到这一点?我不希望在系统范围内安装库。

尝试手动
查找\u程序包后,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)
它成功了