Building Mongodb with Visual Studio 2008

原文参考http://www.mongodb.org/display/DOCS/Building+with+Visual+Studio+2008

最近要使用mongodb的C++客户端,在网上找了一圈,都是1.2版本的C++ driver部署。在mongodb的官网上,1.8.3版本已经不随服务端附带C++客户端所需的.h,.cpp和.lib文件了,需要自己编译出来。

好,let us start

1、先去mongodb官网下载源代码,mongodb-src-r1.8.3 ,解压到C:\mongodb-src-r1.8.3

2、获取boost 1.42的支持库,mongodb的源代码有C++写成,其中大量使用了boost,因此需要在编译的时候用到boost。http://www.mongodb.org/pages/viewpageattachments.action?pageId=12157032包含一份boost 1.42,下载之后解压到C:\boost文件夹。注意,最新的boost库是不与mongodb1.83匹配的,不能正确编译。

3、获取SpiderMonkey,SpiderMonkey是一个JavaScript的解释器,mongodb有个终端shell可以用来管理数据库,用的语法就是Javascript。

http://www.mongodb.org/display/DOCS/Building+Spider+Monkey有编译SpiderMonkey的内容,我们可以直接获取编译好的版本,解压到C:\js。

如果不是放在C盘,也务必和mongodb-src-r1.8.3目录同级。

4、安装SCons1.2.0,SCons用来指导mongodb源代码的编译,SCons1.2.0的安装需要python2.6.4,python当前的最新版本已经是3.2了,但这里我们需要的是2.6,3.2版本的python在编译mongodb源码时会报错。ps:python在2.6之后有过重大的调整。

5、编译mongodb,打开VS2008 commond prompt,切换到C:\mongodb-src-r1.8.3,直接输入

scons                   // build mongod
scons mongoclient.lib   // build C++ client driver library
scons all               // build all end user components
scons .                 // build all including unit test


就可以了,会稍微等一小会。mongodb官网上说在windows cmd中也可以编译,不过我的报说找不到C++编译器,总之上面的方法是可行的。

正常的话,我们可以通过windows cmd 的cd C:\mongodb-src-r1.8.3然后输入mongod来启动mongodb数据库。

6、example,至此我们已经可以利用mongodb的C++ driver写程序了,新建一个控制台工程,在工程属性中附加头文件包含C:\boost,C:\mongodb-src-r1.8.3,指定附加库的目录包含C:\boost,C:\mongodb-src-r1.8.3,C:\boost\lib,拷贝下面的代码

#include <iostream>
#include "client/dbclient.h"
#program(lib,mongoclient.lib)
using namespace mongo;

void run() {
  DBClientConnection c;
  c.connect("localhost");
}

int main() {
  try {
    run();
    cout << "connected ok" << endl;
  } catch( DBException &e ) {
    cout << "caught " << e.what() << endl;
  }
  return 0;
}

编译运行,如果按照步骤5,正确开启了mongod数据库的话,应该会看到connect ok。

enjoy youself!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值