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 #表示2010msvc--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 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的情况。设置了目录还是不行。挺奇怪。
新闻热点
疑难解答
图片精选