起源
最近一个项目需要用到mongodb来做大数据量的存储,以前用到mongo项目都是其他语言,类似golang,pyhton3等,这次需要使用C++在底层构建mongo支持模块,所以先要研究如果构建和使用mongodb-cxx-driver,顺便依然要吐槽某度,搜索全是没用的东西,随后还是只能上梯子然后自己看英文文档才找到出路,这里理顺之后,记录下步骤,其实非常简单,希望后来的小伙伴能够节约一些时间,我自己就折腾了接近1天时间
资料
mongo官网: http://mongocxx.org/mongocxx-v3/installation/linux/
我是在centos8操作系统下进行的编译,其他操作系统看官方文档,大同小异,本篇记录只针对于我当前使用的版本
mongocxx-3.6.3
编译步骤
步骤全部参照官网这里只是翻译为中文而已
-
C++驱动版本编译依赖C版本,我们参照官网给出的步骤来安装C版本驱动 http://mongoc.org/libmongoc/current/installing.html (我安装时候显示的是1.17.5,在你看到这个文章的时候也许就不是了,请以最新版本为主),下面步骤,命令行内容(请用root身份运行),都是安装一些库,有些库可能你机器上已经安装了,再运行一遍,不会有任何影响
dnf install mongo-c-driverdnf install libbsonyum install cmake openssl-devel cyrus-sasl-devel- 配置生成,下面的命令,单行输入,如果你使用的版本有所变动,请以官网为准
wget https://github.com/mongodb/mongo-c-driver/releases/download/1.17.5/mongo-c-driver-1.17.5.tar.gz
tar xzf mongo-c-driver-1.17.5.tar.gz
cd mongo-c-driver-1.17.5
mkdir cmake-build
cd cmake-build
cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF .. - 生成
cmake --build .
cmake --build . --target install
编译安装完成,会输出安装目录,一般是位于/usr/local/include,和/usr/local/lib64目录下
-
编译C++版本驱动
curl -OL https://github.com/mongodb/mongo-cxx-driver/releases/download/r3.6.3/mongo-cxx-driver-r3.6.3.tar.gztar -xzf mongo-cxx-driver-r3.6.3.tar.gzcd mongo-cxx-driver-r3.6.3/build- 配置
- 动态库编译
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
- 静态库编译
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS_WITH_STATIC_MONGOC=ON -DBUILD_SHARED_AND_STATIC_LIBS=ON - 编译MNMLSTC
cmake --build . --target EP_mnmlstc_coreMNMLSTC核心是一个小而易于使用的C++11库,添加了C++14和后面可

本文档记录了在CentOS8系统中编译MongoDB C++驱动的过程,包括编译依赖、步骤及驱动使用方法。首先介绍了问题背景,然后详细阐述了C版本驱动的安装,接着编译MNMLSTC库和C++驱动,并提供了驱动使用的代码示例及编译方法。最后,强调了国内相关中文文档的缺乏,希望通过此教程能帮助遇到同样问题的开发者。

3944

被折叠的 条评论
为什么被折叠?



