时至此刻,终于编译链接成功了如下极其简单的代码!!
#include <cstdlib>
#include <string>
#include <iostream>
#include <winsock2.h>
#include <mongo/client/dbclient.h>
#pragma comment(lib, "ws2_32.lib")
using namespace std;
using namespace mongo;
void run(){
DBClientConnection c;
c.connect("localhost");
}
/*
*
*/
int main(int argc, char** argv) {
try{
run();
}catch(DBException &e){
cout<<"fail to connect"<<e.what()<<endl;
}
return 0;
}
在此顺便吐槽下C++和顺便褒扬一下Java。前者任何一个lib都要针对特定的平台有一个版本,意味着跨平台的开发异常困难;后者,只要在eclipse里面配置一下build path就可以了。。
言归正传,以下开始记录在Windows下配置MongoDB开发环境(VS2010)的步骤和一些注意事项。网上很多帖子都只给出了在代码中使用MongoDB C++ driver的代码片段,而我在编译MongoDB C++ Driver本身以及在编译完成后,在VS中配置开发环境也废了一定的周折,而这个配置细节我还没在其他帖子中看到。我会在这里包含这些内容,一方面给后来者做一个参考,另一方面作为备忘;
1. 第一步,下载mongodb c++ driver的source code。这一步可以参考官方文档;
注意,一定要老老实实的下载安装:boost(建议按官网说的下载binary版本),Scon,Python;
另外我的最终用于install mongodb c++ driver的命令行如下,供参考:
scons --64 --sharedclient --dynamic-windows --prefix="E:\Myprojects\mongo-client-install" --cpppath="D:\local\boost_1_56_0" --libpath="D:\local\boost_1_56_0\lib64-msvc-10.0" install
(尤其注意第二个参数,即--64,表示要针对32位还是64位主机生成目标代码。这要求你之前安装的boost版本一定要对应的上,不然install时候一定会报错)。
一切编译成功的话,你会看到这样的文件结构:
include就是必要的头文件些
lib中就是最终的mongodb c++ driver:
2. OK,至此顺利得到该有的目标代码。就需要在VS中测试一下是否可用。我用于测试的代码就是从网上抄过来的,已经贴在本文的一开始了。
可是直接生成的时候报各种错。在这里直接给出你应该在VS里面做的设置:
打开项目属性(切记当前是Debug属性还是Release属性!Debug属性用到的库需要专门编译,我在第一步给出的install命令适用于生成Release版本的库),设置以下几项
(1)VC++目录
具体地。包含目录:
引用目录:
库目录:
然后,在“链接器”->“输入”->“附加依赖项”中还要指定用到的库文件:
至此,开发环境是配置完了。
生成解决方案吧!!