環境:win7 64bit vs2010
看過網上暴多文章的講解,總結了兩條安裝mongodb c++驅動的方法。老版本是通過scons,新版本是通過cmake。新版本據說很麻煩,未做嘗試,仍使用老版本的scons的編譯方法。
過程中遇到了很多問題,其實主要是各種程序的版本問題,現梳理如下,親測成功:
1.Python2.7.2
http://www.python.org/download/releases/2.7.2/ 選擇Windows x86 MSI Installer (2.7.2) (sig)
注意安裝的時候選擇只使用當前用戶,否則會在下一個安裝程序中報注冊表的錯。
2. pywin32
http://sourceforge.net/projects/pywin32/files/pywin32/Build216/pywin32-216.win32-py2.7.exe/download
pywin32-216.win32-py2.7.exe
3. scons-2.1.0.win32.exe
http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.win32.exe/download
4.boost_1.57
https://ncu.dl.sourceforge.net/project/boost/boost-binaries/1.57.0/boost_1_57_0-msvc-10.0-32.exe
不需要編譯就可以直接安裝到boost的動態庫。
5.08mongo-cxx-driver-26compat
https://codeload.github.com/mongodb/mongo-cxx-driver/zip/26compat
cd到該目錄下,運行cmd:
scons --use-system-boost --32 --sharedclient --dynamic-windows --prefix=D:\mongo-client-install --cpppath=D:\01Lib\07boost_1_57_0_32 --libpath=D:\01Lib\07boost_1_57_0_32\lib32-msvc-10.0 --full install-mongoclient
其中cpppath代表boost的安裝路徑,libpath代表boost lib庫的路徑,dbg表示編譯為debug而不是release版本。
D:\01Lib\mongo-client-install\lib就是庫安裝的路徑。
D:\01Lib\mongo-client-install\include就是包含目錄。
最后給一段測試代碼。需設置boost和mongodb的包含文件和庫文件目錄。
#include "stdafx.h"
#include <iostream>
#include "mongo/client/dbclient.h"
using namespace std;
using namespace mongo;
void run() {
DBClientConnection c;
c.connect("127.0.0.1:27017"); //add port,c.connect("localhost:27017")
const char* ns = "test.first";
c.insert(ns, BSON("name" << "joe"
<< "pwd" << "123456"
<< "age" << 20));
}
int main(void)
{
try {
run();
cout<<"connected ok"<<endl;
system("pause");
}catch(DBException& e){
cout<<"caught"<<e.what()<<endl;
}
return 0;
}
效果如下: