最近项目需要,想要测试下MongoDB读写大量小图片的速度(单纯文件系统io效率比较低,想试试NoSQL能不能提速), 因为使用C++开发,所以使用MongoDB的CXX驱动,需要自己编译,下面记录整个编译过程

  1. 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)进行编译。

  2. 依赖项下载和编译

    根据官方的编译指导,需要如下依赖项,需要依次下载

    • 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
  3. 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文件提取出来放到一个文件夹里),这怎么玩。

MongoDB数据库CXX Driver编译的更多相关文章

  1. mongodb cxx driver学习

    mongodb 增删改查 insert 向集合中增加一个文档 remove 删除文档 update 更新(修改)某些文档 文档替换 文档修改器,只修改文档某个部分 find 返回集合中所有文档 fin ...

  2. MongoDB 4.6.1 c++ driver 编译

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sheismylife/article/details/25512251 这个版本号已经和之前不一样了 ...

  3. 在MVC程序中使用MongoDB数据库

    .net项目中混搭数据库 安装和部署 C#中使用MongoDB MongoDb与关系型数据库区别 开机自启动 关系型数据库和非关系型数据口可以混搭 MongoDB是一个高性能,开源,无模式的,基于分布 ...

  4. 基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用

    在花了不少时间研究学习了MongoDB数据库的相关知识,以及利用C#对MongoDB数据库的封装.测试应用后,决定花一些时间来总结一下最近的研究心得,把这个数据库的应用单独作为一个系列来介绍,希望从各 ...

  5. DotNet 资源大全中文版,内容包括:编译器、压缩、应用框架、应用模板、加密、数据库、反编译、IDE、日志、风格指南等

    DotNet 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-dotnet 是由 quozd 发起和维护.内容包括:编译器. ...

  6. 封装对MongoDB数据库的增删改查访问方法(基于MongoDB官方发布的C#驱动)

    本文利用MongoDB官方发布的C#驱动,封装了对MongoDB数据库的增删改查访问方法.先用官方提供的mongo-csharp-driver ,当前版本为1.7.0.4714 编写数据库访问帮助类 ...

  7. MongoDB数据库简介及安装

    一.MongoDB数据库简介 简介 MongoDB是一个高性能,开源,无模式的,基于分布式文件存储的文档型数据库,由C++语言编写,其名称来源取自"humongous",是一种开源 ...

  8. 浅析MongoDB数据库的海量数据存储应用

    [摘要]当今已进入大数据时代,特别是大规模互联网web2.0应用不断发展及云计算所需要的海量存储和海量计算发展,传统的关系型数据库已无法满足这方面的需求.随着NoSQL数据库的不断发展和成熟,可以较好 ...

  9. NodeJS连接MongoDB数据库时报错

    今天第一次尝试连接MongoDB数据库,具体步骤也很简单. 首先,通过NodeJS运行环境安装MongoDB包,进入要安装的目录,执行语句 npm install mongodb 安装成功后,通过如下 ...

随机推荐

  1. Linux虚拟机无法通过宿主机上网

    解决方法 1.Windows: 确保相关服务已经启动 2.Linux: 确保相关服务已经启动 1) 确认Linux的IP地址和Windows在同一个网段: 若Windows给虚拟机分配的IP地址如下: ...

  2. java编程--02日期格式化

    第一篇,介绍日期的比较 第二篇,介绍日期的格式化 第三篇,介绍关于日期常用的计算 第四篇,比较几个常用的日期时间相关类的区别 第五篇,jdk9对日期类进行了更新,写一些i自己的学习心得. 日期的格式化 ...

  3. 5W1H

    WHY   ——为什么做?原因与目标 WHAT ——做什么?目标与内容 WHO   ——谁去做?具体的执行者 WHEN ——什么时间做?执行时间 WHERE——在什么地方做?执行地点 HOW——怎样做 ...

  4. 贪心:钱币找零问题(C++)

    贪心是一种算法范例,它一点一点地构建解决方案,总是选择下一个提供最明显和最直接好处的部分.因此,选择局部最优也会导致全局解的问题最适合贪心问题. 例如,考虑分数背包问题.局部最优策略是选择权重比最大的 ...

  5. 牛客网Java刷题知识点之字节缓冲区练习之从A处复制文本文件到B处(BufferedReader、BufferedWriter)、复制文本文件的原理图解

    不多说,直接上干货! CopyTextByBufTest.java package zhouls.bigdata.DataFeatureSelection.test; import java.io.B ...

  6. Navicat连接Oracle数据库报错ORA-28547解决方法

    先说明下我机器的环境: 1.Win10 - 64bit 2.Navicat Premium_11.2.7  - 64bit 3.未安装Oracle数据库(包括Client也未安装) 解决方法: 1.下 ...

  7. Swift UI开发初探 (转)

    原文地址:http://www.tairan.com/archives/6600 关于Swift语法,可以参考<Apple Swift编程语言入门教程> 效果如下: 开发环境 Xcode6 ...

  8. jQuery中的节点操作(二)

    html代码如下 <p title="武汉长乐教育PHP系列教程" name="hello" class="blue"> < ...

  9. Azure 本月最新活动,速度Mark!

    很多时候,为了知晓 Azure 相关活动的信息,需要到处查阅.问朋友同事,这样既麻烦又易造成延误.为方便广大粉丝,我们推出每月活动合集,帮您第一时间了解 Azure 最新活动,还等什么,一起来看吧! ...

  10. centos部署vue项目

    参考链接 nodejs服务器部署教程二,把vue项目部署到线上 打包 #在本地使用以下命令,打包 npm run build #打包之后本地会出现dist文件夹.将dist文件夹以及package.j ...