CMake找不到libbsoncxx配置文件,求解决方法及Libbsoncxx获取路径
先帮你理清两个问题:获取Libbsoncxx的途径,以及解决你遇到的CMake配置错误。
一、获取Libbsoncxx的两种方式
1. 系统包管理器安装(最简便推荐)
不同系统的安装命令如下:
- Debian/Ubuntu 系:
sudo apt update && sudo apt install libbsoncxx-dev - RHEL/CentOS/Fedora 系:
sudo dnf install libbsoncxx-devel - macOS(使用Homebrew):
注:部分Homebrew版本中,libbsoncxx属于brew install libbsoncxxmongo-cxx-driver的子组件,若上述命令找不到包,可尝试brew install mongo-cxx-driver。
2. 源码编译安装(适合需要特定版本的场景)
如果系统包没有你需要的版本,可以从官方源码编译:
- 克隆并切换到稳定版源码:
git clone https://github.com/mongodb/mongo-cxx-driver.git cd mongo-cxx-driver git checkout releases/stable - 创建编译目录并配置CMake:
这里的mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/localCMAKE_INSTALL_PREFIX可以替换为你自定义的安装路径,比如~/local。 - 编译并安装:
make -j$(nproc) sudo make install
二、解决CMake找不到libbsoncxx的错误
先把你遇到的错误信息贴出来方便对照:
CMake Error at plugins/db_plugin/CMakeLists.txt:21 (find_package): 由于未在CMAKE_MODULE_PATH中提供"Findlibbsoncxx.cmake",本项目要求CMake查找由"libbsoncxx"提供的包配置文件,但CMake未找到。未找到任何以下列名称存在的"libbsoncxx"提供的包配置文件:libbsoncxxConfig.cmake、libbsoncxx-config.cmake。请将"libbsoncxx"的安装前缀添加到CMAKE_PREFIX_PATH中,或者将"libbsoncxx_DIR"设置为包含上述文件之一的目录。如果"libbsoncxx"提供单独的开发包或SDK,请确保已安装该包。
-- 配置未完成,发生错误!
这个错误的核心是CMake找不到libbsoncxx的配置文件,按以下步骤排查:
步骤1:确认安装了开发包
很多系统会把运行时库和开发文件(头文件、CMake配置文件)分开打包,你必须安装带-dev或-devel后缀的包,而不是只装运行时的libbsoncxx包。如果是源码编译的,确保make install执行成功,配置文件会被安装到${CMAKE_INSTALL_PREFIX}/lib/cmake/libbsoncxx-xxx目录下(xxx为具体版本号)。
步骤2:手动指定libbsoncxx的安装路径
如果libbsoncxx安装在非标准路径(比如自定义的~/local),需要告诉CMake它的位置:
- 方法一:通过
CMAKE_PREFIX_PATH指定安装前缀:
比如源码安装到cmake .. -DCMAKE_PREFIX_PATH=/path/to/libbsoncxx/install~/local,就用-DCMAKE_PREFIX_PATH=~/local。 - 方法二:直接指定配置文件所在目录:
替换路径为你实际安装的版本对应的目录。cmake .. -Dlibbsoncxx_DIR=/usr/local/lib/cmake/libbsoncxx-3.8.0
步骤3:如果项目自带查找脚本
如果你的项目自己提供了Findlibbsoncxx.cmake文件,需要把该文件所在目录加到CMAKE_MODULE_PATH:
cmake .. -DCMAKE_MODULE_PATH=/path/to/directory/containing/Findlibbsoncxx.cmake
按上面的步骤操作,应该就能解决这个CMake配置错误了。
内容的提问来源于stack exchange,提问作者Babalon Cryptolog

