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

mongodb的cpp版本驱动编译总结

2016-03-01 09:07 375 查看

准备工作

使用cpp语言开发基于mongodb的应用时, 需要使用mongo的cpp驱动去连接和操作mongodb.

然而, mongodb的官方网站并没有提供编译好的驱动, 只提供了源代码, 需要用户自己编译.

对于windows操作系统来说, 进行源码编译是相当麻烦的.

mongo的cpp驱动的编译依赖于boost, bson和mongo的c驱动, 因此需要先编译bson和mongo的c驱动.

mongo的c驱动依赖于bson和sasl, 需要先编译bson, 然后编译mongo的c驱动.

工具准备

本次编译使用vc版本的编译器, 因此需要安装64位vs2015社区版.

mongo的c驱动源码, bson源码, mongo的cpp驱动源码都是用cmake构建的, 需要预先安装一下cmake.

综上, 编译之前需要安装64位的vs2015社区版(带有vc开发包), cmake工具.

安装完毕上面两个软件, 将cmake的bin目录添加到环境变量中的path路径下.

源码准备

本次编译的依赖情况如下:

bson编译第三方依赖.

mongo的c驱动依赖bson和sasl.

mongo的cpp驱动依赖bson, mongo的c驱动, boost.

其中, sasl和boost可以在官网上下载到编译好库文件.

综上分析, 需要从github中下载的源码有, bson, mongo_c, mongo_cxx.

bson编译

首先是bson的编译

准备

在mongo的c驱动中并没有提到需要下载bson的源码.

readme.md文件中这样描述编译过程:

cd mongo-c-driver-$ver
cd src\libbson
cmake -DCMAKE_INSTALL_PREFIX=C:\usr -G "Visual Studio 10 Win64" .
msbuild.exe ALL_BUILD.vcxproj
msbuild.exe INSTALL.vcxproj


当我们执行第三行命令时, 命令行会提示没有找到cmakelist.txt文件. 同时, 当我们使用资源管理器查看这个目录时, 会发现这个目录是空目录.

事实上在github上, 这个目录指向了另一个资源.

这个资源也在github的mongodb用户下. 找到资源后把源码下载下来.

编译

根据上面的命令行一步一步敲也是一种安装的方法.

但是, 既然是在windows操作系统上面, 为什么不直接使用GUI程序呢.

事实上, cmake为windows用户提供了GUI版本的程序.

在src选项中选择bson的src目录

在build选项中选择bson的build目录

然后添加”DCMAKE_INSTALL_PREFIX”变量, 这个变量为编译完成后的安装目录.

然后点击configure按钮, 配置项目.

然后点击generate按钮, 生成项目.

然后在build目录下可以看到sln格式的文件, 这个是vs的解决方案.

可以启动vs, 然后打开这个解决方案.

先构建”ALL_BUILD”, 然后构建”INSTALL”, 最后就可以在前面设置的目录下面找到编译完成的bson库.

编译完成的bson库包括三个文件夹, 分别是bin, lib, include.

当然也可以使用命令行进行编译.

在windows自带命令行中使用msbuild.exe时会提示没有找到msbuild.exe.

解决方案是, 在开始菜单中找到vs2015文件夹, 里面有个命令行, 然后在这个命令行中跳转到bson的build目录下面中, 执行下面的命令:

msbuild.exe ALL_BUILD.vcxproj
msbuild.exe INSTALL.vcxproj


接着就可以在指定的安装目录中找到编译完成的bson库.

mongo的c语言驱动编译

准备

mongo的c语言驱动编译时需要依赖bson和sasl.

bson在前面的步骤已经编译完毕, 而sasl在项目网站可以下载到编译完成的windows版本.

编译

依旧使用cmake的GUI界面, 将src选择mongo_c的src目录, 将build选择mongo_c的src目录.

点击configure按钮时, 会提示错误, bson目录没有配置和sasl的include目录lib目录没有配置.

在图形界面中选择这几个目录, 然后点击”configure”, 生成成功.

然后使用开始菜单中的vs文件夹, 找到命令控制台, 然后跳转到相应的目录, 运行下面命令:

msbuild.exe ALL_BUILD.vcxproj
msbuild.exe INSTALL.vcxproj


mongo的cpp语言驱动编译

准备

mongo的cpp语言驱动需要依赖与bson, mongoc和boost.

前两者已经编译完毕, boost可以下载到编译完成的库文件.

编译

同样使用cmake的GUI界面, 然后点击configure按钮时, 会提示sasl, bson, mongoc和boost参数没有配置.

使用用户界面将这几个参数设置为特定的参数. 然后使用configure进行生成.

接着, 使用vs的命令控制台跳转到相应的目录下, 执行下面命令:

msbuild.exe ALL_BUILD.vcxproj
msbuild.exe INSTALL.vcxproj


完成安装
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: