MongoDB 2.4.1 C++ driver编译和使用

2014-11-24 18:01:13 · 作者: · 浏览: 0

这个版本仍然没有解决不能编译动态库的问题,MongoDB这帮人发什么神经?


原来两个绕过的方法也不行了。


只有使用静态库了。


下载最新版的代码,编译


scons --prefix=/usr install


旧版的C++代码会编译报错,因为ScopedDbConnection的构造函数变成了私有,必须通过静态方法来创建。



所以调用代码要做相应调整。


我的CMake工程配置如下:


target_link_libraries(service ${Boost_LIBRARIES} booster loki cryptopp mongoclient)


应该没有问题了。



分享一下我的C++封装类:


#ifndef BUSINESS_UTIL_MONGO_SESSION_H_
#define BUSINESS_UTIL_MONGO_SESSION_H_


#include
#include
#include


using std::string;



class MongoSession {
public:
/**
* 从连接池中获取连接,如果没有则创建一个
*/
MongoSession(string const& host, double socketTimeout=0);


/**
* 归还连接到池中
*/
~MongoSession();

/**
* 返回已经获得的连接
*/
mongo::DBClientBase& GetDBClientBase();


private:
std::auto_ptr con_;
};



#endif


推荐阅读