如何解决LibMongoCxx 的正确 CMake 配置
我正在使用 MongoDB C++ 库 3.5.0 处理一个项目,但我无法弄清楚如何使用 CMake 正确包含 mongocxx。
现在 mongocxx 包含在 CMake 中,如下所示:
find_package(libmongocxx required)
include_directories(${libmONGOCXX_INCLUDE_Dirs})
target_link_libraries(${PROJECT_NAME} ${libmONGOCXX_LIBRARIES})
这对于构建我的最小示例很有效:
// main.cpp:
#include <mongocxx/instance.hpp>
int main()
{
mongocxx::instance instance{};
}
但是,在运行 CMake 时,我收到以下警告:
CMake Warning at /usr/lib64/cmake/libmongocxx-3.5.0/libmongocxx-config.cmake:15 (message):
This CMake target is deprecated. Use 'mongo::mongocxx_shared' instead.
Consult the example projects for further details.
Call Stack (most recent call first):
CMakeLists.txt:16 (find_package)
我想摆脱这个来整理我的 CMake 输出,也因为当前的方式已被弃用。
当我使用警告 find_package(mongo::mongocxx_shared required)
或 find_package(mongocxx_shared required)
中的建议时,我收到一个错误说明 Could not find a package configuration file provided by "mongocxx_shared"
。查看可用的内容,我看到:
[georg@archlinux build]$ locate mongo | grep cxx | grep .cmake
/usr/include/mongocxx/v_noabi/mongocxx/cmake
/usr/lib/cmake/libmongocxx-3.5.0
/usr/lib/cmake/mongocxx-3.5.0
/usr/lib/cmake/libmongocxx-3.5.0/libmongocxx-config-version.cmake
/usr/lib/cmake/libmongocxx-3.5.0/libmongocxx-config.cmake
/usr/lib/cmake/mongocxx-3.5.0/mongocxx-config-version.cmake
/usr/lib/cmake/mongocxx-3.5.0/mongocxx-config.cmake
/usr/lib/cmake/mongocxx-3.5.0/mongocxx_targets-release.cmake
/usr/lib/cmake/mongocxx-3.5.0/mongocxx_targets.cmake
mongocxx-config.cmake
存在,因此我尝试了 find_package(mongocxx required)
这使得 CMake 不再抱怨,但是现在变量 ${libmONGOCXX_INCLUDE_Dirs}
和 ${libmONGOCXX_LIBRARIES}
保持为空并且编译器无法找到包含作为后果。
在不遇到已弃用警告的情况下包含此库的正确方法是什么?
这里是我目前使用的完整 CMake 文件作为参考:
cmake_minimum_required(VERSION 3.14)
project(
test
VERSION 0.1.0
)
add_executable(${PROJECT_NAME}
${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp
)
find_package(libmongocxx required)
find_package(mongocxx required)
include_directories(${libmONGOCXX_INCLUDE_Dirs})
target_link_libraries(${PROJECT_NAME} ${libmONGOCXX_LIBRARIES})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。