博客
关于我
mongodb 与 c++ 的配合使用
阅读量:792 次
发布时间:2023-02-09

本文共 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

你可能感兴趣的文章
Mac下如何配置环境变量
查看>>
Mac下安装jdk
查看>>
mac下安装配置nginx
查看>>
Mac下忘记MySQL密码可以这样做!
查看>>
Mac下配置多个SSH-Key (gitLab)
查看>>
mac地址随机变化的解决方法(安卓手机通用)不用ROOT
查看>>
Mac安装Maven
查看>>
Mac实现远程服务器登录管理
查看>>
mac常用命令
查看>>
mac更新后 homestead 无法使用
查看>>
mac环境安装docker
查看>>
MAC生成公钥私钥、PKCS1 转 PKCS8
查看>>
Mac电脑怎么读写不了移动硬盘?解决苹果电脑不能读写移动硬盘问题
查看>>
Mac电脑生成git的公私钥(拉取代码更便捷)
查看>>
Magentic-One、AutoGen、LangGraph、CrewAI 或 OpenAI Swarm:哪种多 AI 代理框架最好?
查看>>
magento1给customer添加自定义属性
查看>>
Magic Leap是快出产品的节奏,已开放内容开发者注册通道
查看>>
Majorization-Minimization (MM) 和 Successive Convex Approximation (SCA)
查看>>
makefile 打印
查看>>
makefile工作笔记0001---认识使用makefile
查看>>