原文参考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!