MongoDB数据库CXX Driver编译
最近项目需要,想要测试下MongoDB读写大量小图片的速度(单纯文件系统io效率比较低,想试试NoSQL能不能提速), 因为使用C++开发,所以使用MongoDB的CXX驱动,需要自己编译,下面记录整个编译过程
- CXX Driver下载
从Github的MongoDB官方源中下载https://github.com/mongodb/mongo-cxx-driver/tree/26compat,因为我需要稳定的驱动,因此选择26compat分支。然后参考官方的编译指导(https://github.com/mongodb/mongo-cxx-driver/wiki/Download%20and%20Compile)进行编译。
- 依赖项下载和编译
根据官方的编译指导,需要如下依赖项,需要依次下载
- C++编译器:这个不需要说,肯定需要,只要安装了MSVC就肯定有
- BOOST:著名的C++拓展库,准C++标准库,官方网址http://www.boost.org/,我下载的是1.55版本,具体编译和使用方法网上很多。我是直接使用根目录下的bootstrap.bat生成b2.exe,然后“b2”直接编译整个库,相当费时间,汗一个
- Python:主要是为了使用下面介绍Scons,由于我使用的Scons2.3.1版本不支持python3+,因此我下载的是python2.7版本,下载地址 https://www.python.org/,我直接下载msi安装文件安装,安装的时候注意勾选将python添加到系统路径选项
- Scons:根据介绍,这货是类似Cmake的存在,不知道为什么不适用cmake而使用这个。。,官方网址http://scons.org/, 我下载的的是2.3.1版本,安装方法很简单,根据根目录下的“README.txt”,在根目录下打开命令行窗口,输入如下命令即可
python setup.py install
- CXX Driver编译
打开VS2010的命令行编译工具,切换到CXX Driver的根目录,使用如下命令进行编译:
scons --use-system-boost --32 --sharedclient --dynamic-windows --prefix=$HOME/mongo-client-install --cpppath="D:\Dev\boost_1_55_0" --libpath="D:\Dev\boost_1_55_0\stage\lib" --full install-mongoclient
注意prefix选项表示最后生成的库安装的地方,cpppath和libpath表示boost库的位置,请根据自己的需要修改,其他的选项请参考官方编译指导修改“https://github.com/mongodb/mongo-cxx-driver/wiki/Download%20and%20Compile”
吐槽一句,官方的命令行完全不行么,总是提示install-mongoclient 错误,可视不加这个选项就完全没有开发库安装么(就是没有吧h文件和lib文件提取出来放到一个文件夹里),这怎么玩。
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
MongoDB数据库CXX Driver编译的更多相关文章
- mongodb cxx driver学习
mongodb 增删改查 insert 向集合中增加一个文档 remove 删除文档 update 更新(修改)某些文档 文档替换 文档修改器,只修改文档某个部分 find 返回集合中所有文档 fin ...
- MongoDB 4.6.1 c++ driver 编译
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sheismylife/article/details/25512251 这个版本号已经和之前不一样了 ...
- 在MVC程序中使用MongoDB数据库
.net项目中混搭数据库 安装和部署 C#中使用MongoDB MongoDb与关系型数据库区别 开机自启动 关系型数据库和非关系型数据口可以混搭 MongoDB是一个高性能,开源,无模式的,基于分布 ...
- 基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用
在花了不少时间研究学习了MongoDB数据库的相关知识,以及利用C#对MongoDB数据库的封装.测试应用后,决定花一些时间来总结一下最近的研究心得,把这个数据库的应用单独作为一个系列来介绍,希望从各 ...
- DotNet 资源大全中文版,内容包括:编译器、压缩、应用框架、应用模板、加密、数据库、反编译、IDE、日志、风格指南等
DotNet 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-dotnet 是由 quozd 发起和维护.内容包括:编译器. ...
- 封装对MongoDB数据库的增删改查访问方法(基于MongoDB官方发布的C#驱动)
本文利用MongoDB官方发布的C#驱动,封装了对MongoDB数据库的增删改查访问方法.先用官方提供的mongo-csharp-driver ,当前版本为1.7.0.4714 编写数据库访问帮助类 ...
- MongoDB数据库简介及安装
一.MongoDB数据库简介 简介 MongoDB是一个高性能,开源,无模式的,基于分布式文件存储的文档型数据库,由C++语言编写,其名称来源取自"humongous",是一种开源 ...
- 浅析MongoDB数据库的海量数据存储应用
[摘要]当今已进入大数据时代,特别是大规模互联网web2.0应用不断发展及云计算所需要的海量存储和海量计算发展,传统的关系型数据库已无法满足这方面的需求.随着NoSQL数据库的不断发展和成熟,可以较好 ...
- NodeJS连接MongoDB数据库时报错
今天第一次尝试连接MongoDB数据库,具体步骤也很简单. 首先,通过NodeJS运行环境安装MongoDB包,进入要安装的目录,执行语句 npm install mongodb 安装成功后,通过如下 ...
随机推荐
- Vue.js-----轻量高效的MVVM框架(十、父子组件通信)
#1.父链 html: <h3>#父链</h3> <div> <div>子组件可以用 this.$parent 访问它的父组件.根实例的后代可以用 th ...
- perf命令
@(Linux基础)[perf命令] perf命令 ---- 简介 Perf是内置于Linux内核源码树中的性能剖析(profiling)工具,它基于事件采样原理,以性能事件为基础,支持针对处理器相关 ...
- stringstream的使用
stringstream是 C++ 提供的另一个字串型的串流(stream)物件,和之前学过的iostream.fstream有类似的操作方式.要使用stringstream, 必须先加入这一行: # ...
- 本地git的使用
git和svn的解析 git 教程 git rebase的用法 attion: one: git中是严格区分大小写的,文件名字大小写敏感 two: git中分为:工作区,暂存区,分支 three: ...
- 在Application_Error获取Asp.Net未处理异常信息
在Application_Error获取Asp.Net未处理异常信息 protected void Application_Error(object sender, EventArgs e) { // ...
- GitKraken使用教程-基础部分(2)
3. 修改用户名 为了方便项目中代码的管理,需要重新编辑用户名. 点击右上角的图像即可看到如下图 3‑1所示的下拉菜单,鼠标悬于Profile上,会出现一个Edit按钮. 图 3‑1 编辑个人信息 点 ...
- html常用样式
1.小手:style="cursor: pointer;" 2.滚动条:style="height: 1oopx;overflow: auto;"; 3.文本框 ...
- Oracle 内置函数
三. 字符函数(可用于字面字符或数据库列) 1,字符串截取 select substr('abcdef',1,3) from dual 2,查找子串位置 select instr('abcfdgfdh ...
- VueJs组件prop验证简单理解
今天看了vuejs的组件,看到了prop组件,主要作用是在传入数据的时候对传入的值做判断,写了个小例子. <div id="app"> <my-child :nu ...
- em和rem的区别
rem和em单位一样,都是一个相对单位,不同的是em是相对于元素的父元素的font-size进行计算,rem是相对于根元素html的font-size进行计算,这样一来rem就绕开了复杂的层级关系,实 ...