MongoDB C++ Driver Windows 编译记录

来源:互联网 发布:留学美国北大gpa算法 编辑:程序博客网 时间:2024/05/17 07:40

目录-记录MongoDB win10 64bit VS2010过程

安装需求

1、mongo-cxx-driver
贴git地址:

  • https://github.com/mongodb/mongo-cxx-driver
    当前最新版本的的是3.1.1。
    需求的是cmke 与 VS2015。与我的环境不同,就没有选择了。

  • https://github.com/mongodb/mongo-cxx-driver/releases/tag/legacy-1.1.2
    文档中有专门的说明,所以选择了这个。文档点我

2、boost
因为mongoDB其中使用了boost,所以这里得下载boost.话说大名鼎鼎的boost这也是第一次使用。。。 boost官网
由于上面mongodb的文档中是使用的1.55的库,为了避免问题所以这边就与其保持一致的版本。

1.55

boost可以下载源码自己编译,也可以下载已经编译完成的。我这边下载的是编译完成的,比较方便。已经编译好的下载地址点我。在sourceforge上选择适合自己的版本,这边我选择的是msvc-10.0-32与msvc-10.0-64的版本。
boost_1_55_0-msvc-10.0-32.exe
boost_1_55_0-msvc-10.0-64.exe

3、python-scons
自己常用的就是PY2.7了。没有试过3的版本。

PS:网上有说需要用32位的Python的安装scons的,我这边的是64位的python。也能安装到64位的scons,使用起来也很好。

4、cmake (高版本mongo)
在编译高版本的mongdb-cxx-driver的时候,需要这个。cmake官方有安装版。
这个只是scons的替代品。


安装开始

1、python安装就不多说了吧。官网下载对应的版本,然后PIP即可。
直接使用Pip install scons。版本如下
版本

2、boost安装
如果使用源码的安装,可能会麻烦点点。记得使用VS的命令提示符去调用bat.这边使用的是boost已经编译完成的。就不存在这些。
如下,是我下载的库。lib32-msvc-10.0就是32位使用2010编译的库。文件夹中包含各种版的lib与dll。
boost

3、mongo-cxx-driver编译
使用命令行cd到此目录。我这里是1.1.2版本的。命令行最好使用管理员权限运行。
&path:\mongo-cxx-driver-legacy-1.1.2
我们可以使用scons -h来查看详细编译选项。文档上也有详细说明
文档点我
详细的看下文档就知道这几个编译选项了。
文档有给出详细编译选项。

scons     <--64 or --32>     --sharedclient     --dynamic-windows     --prefix=<install-path>     --cpppath=<path-to-boost-headers>     --libpath=<path-to-boost-libs>     install The following example will build and install the C++ driver, in a PowerShell: scons     --64     --sharedclient     --dynamic-windows     --prefix="%HOME%\mongo-client-install"     --cpppath="C:\local\boost_1_55_0\include"     --libpath="C:\local\boost_1_55_0\lib64-msvc-12.0"     install

参数中的
dynamic-windows与sharedclient。前者是生成\MT \MD的选项,后者加上会在生成的文件加上个s,表示静态与否吧。
prefix 表示的是生成的目录。我这边没有使用。也是正常的,直接导出到了install目录。
dbg 关键字来控制是否为debug版本。
install 这个关键字,一定得需要。如果没有设置prefix,在编译完成后会生成一个install的目录,为最终导出的目录。
还有个msvc–version 对于我这样电脑上安装了多个版本VS的时候,这个就可以选择你需要的版本去对应的编译。使用方法很简单,如下加上即可。

msvc--version=10.0    #表示2010msvc--version=12.0    #表示2013

我这边生成的目录如下。前面为install目录。后面为install/lib目录
文件夹lib目录

代码示例

建个空工程。
需要注意的是把Boost库的目录加进去。
&path:\boost 包含
&path:\boost\lib32-msvc-10.0 库

还有把mongo-cxx-driver生成的install目录拷贝到工程中,其目录也加入进去。不细说了。

#include <cstdlib>#include <iostream>#include <winsock2.h>   //官方文档中这个没,一般VS会报的,加上即可。#include "mongo/client/dbclient.h" // for the drivervoid run() {    mongo::DBClientConnection c;    c.connect("localhost");}int main() {    mongo::client::initialize();    try {        run();        std::cout << "connected ok" << std::endl;    } catch( const mongo::DBException &e ) {        std::cout << "caught " << e.what() << std::endl;    }    getchar();    return EXIT_SUCCESS;}

打印出connected ok就完成了。其他功能可以继续看上面我帖的文档地址。

PS:其中可能会报boost库找不到xx dll的情况。设置了目录还是不行。挺奇怪。

0 0
原创粉丝点击