您的位置:首页 > 数据库 > Mongodb

MongoDB C++ Driver Windows 编译记录

2017-02-16 19:26 429 查看

目录-记录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的库,为了避免问题所以这边就与其保持一致的版本。



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。



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    #表示2010
msvc--version=12.0    #表示2013


我这边生成的目录如下。前面为install目录。后面为install/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 driver

void 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;
}


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

PS:其中可能会报boost库找不到xx dll的情况。设置了目录还是不行。挺奇怪。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb windows win10 64 c++