使用vcpkg安装ZeroMQ后,CMake构建测试项目失败的问题求助
大家好,我已经折腾了一整天,还是没解决用CMake构建依赖ZeroMQ库的项目时遇到的问题。我知道之前社区里有不少相关讨论,但都没把修复方法讲透,现在我已经把自己能想到的办法都试遍了,真心希望有人能给我详细讲讲该怎么处理。
我是在CLion中执行CMake命令时触发的错误,错误信息指向vcpkg-cmake-wrapper.cmake的第1行(说明这个文件是被找到了的),具体错误内容如下:
Could not find a package configuration file provided by "zeromq" with
any of the following names:
zeromqConfig.cmake
zeromq-config.cmake
Add the installation prefix of "zeromq" to CMAKE_PREFIX_PATH or set
"zeromq_DIR" to a directory containing one of the above files. If "zeromq"
provides a separate development package or SDK, be sure it has been
installed.
我现在有几个没搞明白的点:
- 这个
zeromqConfig.cmake(或者zeromq-config.cmake)配置文件应该放在什么位置?里面一般包含哪些内容? - 错误提示里说的“把ZeroMQ的安装前缀添加到
CMAKE_PREFIX_PATH”具体是怎么操作的?
说下我的环境情况:
我是用vcpkg安装的ZeroMQ,执行vcpkg list命令得到的输出如下:
cppzmq:x64-linux 4.8.1#1 Header-only C++ binding for ZeroMQ zeromq:x64-linux 4.3.4#6 The ZeroMQ lightweight messaging kernel is a lib...
从输出来看,ZeroMQ和它的C++绑定cppzmq应该都已经下载、编译并安装成功了。
我的CMake工具链参数设置的是:
-DCMAKE_TOOLCHAIN_FILE=~/vcpkg/scripts/buildsystems/vcpkg.cmake
项目的CMakeLists.txt内容如下:
cmake_minimum_required(VERSION 3.24.0) project(Template VERSION 1.0.0) add_executable(template src/main.cpp) find_package(zeromq CONFIG REQUIRED) find_package(cppzmq CONFIG REQUIRED) target_compile_features(Template PRIVATE cxx_std_17) target_link_libraries(main PRIVATE zeromq::zeromq cppzmq::cppzmq)
目前这是个空项目,我得先把CMake的库依赖问题搞定才能开始写业务代码。
另外我也试过跟着官方的示例项目来配置CMake,那个示例能成功编译出可执行文件,但换到我自己的项目就不行了,实在搞不懂哪里出问题了。
备注:内容来源于stack exchange,提问作者Phil Davies

