我正在构建一个测试项目,以使用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
以便可以找到{{1} }文件,但也失败,并显示相同的错误:
ZeroMQConfig.cmake
有没有办法实现这一目标?我不想在系统范围内安装这些库。
答案 0 :(得分:0)
尝试手动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)
它奏效了。