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)
它成功了