MongoDB C++库(LibMongoCxx 3.5.0)的正确CMake配置方法
解决MongoDB C++ 3.5.0的CMake废弃警告及正确库引入方式
针对你遇到的CMake警告和库引入问题,这里有一套完全符合新版本要求的配置方案,能彻底消除废弃警告并正确链接mongocxx库:
正确的CMake配置
替换你现有的CMakeLists.txt内容为以下代码:
cmake_minimum_required(VERSION 3.14) project(test VERSION 0.1.0) add_executable(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp) # 使用新的官方配置文件查找mongocxx find_package(mongocxx REQUIRED) # 直接链接官方提供的导入目标,无需手动处理头文件和库路径 target_link_libraries(${PROJECT_NAME} PRIVATE mongo::mongocxx_shared)
为什么之前的配置会出问题?
- 旧配置的废弃问题:你最初使用的
libmongocxx是官方标记为废弃的旧配置入口,所以会弹出警告提示你切换到mongo::mongocxx_shared目标。 - 错误的目标查找方式:
mongo::mongocxx_shared是一个CMake导入目标,不是独立的包,所以不能用find_package(mongo::mongocxx_shared REQUIRED)来查找——你需要先通过find_package(mongocxx REQUIRED)加载官方新配置,这个配置会自动注册mongo::mongocxx_shared目标。 - 无需手动处理路径:新的导入目标
mongo::mongocxx_shared已经内置了所有必要的头文件包含路径、链接库以及编译选项,完全不需要再用include_directories或者${LIBMONGOCXX_*}这类旧变量。
验证有效性
用这个配置编译你的最小示例代码时:
- CMake不会再弹出废弃警告
- 编译器能自动找到mongocxx的头文件
- 链接阶段会正确关联mongocxx的共享库
内容的提问来源于stack exchange,提问作者Herr von Wurst
相关产品推荐
相关产品推荐

