mongodb 与 c++ 的配合使用
发布日期:2025-04-14 14:21:23 浏览次数:8 分类:精选文章

本文共 1411 字,大约阅读时间需要 4 分钟。

最近尝试在服务端程序中使用 MongoDB 作为持久化方案,使用 C++ 编写服务端程序,经历了不少波折,记录一下配置和编译过程。

1. 下载 Boost 1.56.0

Boost官方网站 下载。

注意:Boost 的版本选择至关重要,需与 GCC 和 MongoDB 驱动程序的版本保持兼容。

2. 下载 MongoDB C++ 驱动程序 Legacy 版本 1.0.2

GitHub发布页面 下载。

3. 环境准备

  • GCC 版本:建议使用 4.8.2 或更高版本。
  • 安装 SCons 构建工具。
  • Python 2.7.9 或更高版本。
  • 建议在 /usr/bin 目录下创建 GCC 和 C++ 的软链接,例如:
    ln -sf /usr/bin/gcc-4.8 /usr/bin/cc  ln -sf /usr/bin/g++-4.8 /usr/bin/c++  ln -sf /usr/bin/gcc-4.8 /usr/bin/gcc  ln -sf /usr/bin/g++-4.8 /usr/bin/g++
  • 安装 Boost 后,将动态库复制到 /usr/lib64 目录下。

4. 编译 MongoDB C++ 驱动程序

解压并进入目录后,运行以下命令编译:

scons all -j8

编译完成后,头文件和静态库会存放在 build/install/ 目录下。

5. 编写测试代码

编写一个简单的测试文件 test.cpp:

#include 
#include "mongo/client/dbclient.h"int main() { try { mongo::DBClientConnection conn; conn.connect("127.0.0.1"); std::cout << "connected ok" << std::endl; } catch (const std::exception& e) { std::cerr << "Error: " << e.what() << std::endl; } return 0;}

6. 编译测试代码

使用 GCC 编译:

g++ test.cpp -I include/ -L lib/ -lmongoclient -lboost_system -lboost_regex -lboost_thread

注意:include 目录存放 MongoDB 和 Boost 的头文件,lib 目录存放相关动态库。

7. 常见问题

  • 如果 GCC 或 Boost 版本不兼容,可能导致编译失败或运行时错误。
  • 建议在编译 Boost 时,使用与系统 GCC 版本完全一致的版本,避免混用不同版本的 Boost 库。

8. 未来深入

  • MongoDB C++ 驱动程序有多个版本,包括 Legacy 版本、26compat 版本和 C++11 重写版本。
  • 推荐使用 C++11 版本的新驱动程序,以享受更高的性能和更好的兼容性。
  • 如果有时间,建议尝试最新驱动程序。

9. 封装

计划对驱动程序进行封装,便于快速集成和使用,具体细节待补充。

转载自:https://www.cnblogs.com/tianyajuanke/p/4511748.html

上一篇:MongoDB 分片集群技术
下一篇:Mongodb sharding转换一个副本集为分片集群

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年05月14日 23时49分50秒