編譯mongodb C 驅動 windows

2021-06-18 06:35:23 字數 1416 閱讀 8848

這個mongodb  的c++ 驅動著實費了我一番功夫,不過終於成功跑通了。

注意這裡的 boost 版本我們選擇 1.49.0,方便起見,我是全部安裝的,安裝完成之後 除了boost , stage , doc 這三個目錄其餘全部刪除,這個時候大小約1.6g,遠沒有5g那麼大,好多obj檔案都是編譯的中間檔案

之所以選擇 1.49.0有如下原因:

boost在1.5以後就將time_utc改為了time_utc_,mongodb 用的絕對不高於1.49.0

官網上說boost 1.49 source is now included directly in version 2.1.1+,在2.1.1 之後就內部包含1.49 了。顯然 2.4 應該用 1.49 的boost ,雖然驅動的源**沒有包含。這是後話。

boost版本太低的話 會出現 compiling filesystem version 3 file with boost_filesystem_version defined != 3 因為 1.49 以後 filesystem version就是3 了。

安裝完boost之後,我們修改 mongodb driver 的源**:

開啟 根目錄下的sconstruct 25行 處修改 build_dir='c:/boost_1_49_0',  這裡的boost路徑為 你自己機子上的路徑,我的放在c盤根目錄下

不同的版本可能行數不一樣 ,我的是 2.4.3 這個辦法就是 把編譯目錄改為 boost的路徑,會在boost路徑下 生成 mongo資料夾,編譯完成刪了就行。

直接編譯的話,還會提示錯誤,text.h   # if !defined(_unicode)  把前邊的# 去掉。

等待幾分鐘,會在根目錄下生成 mongoclient.lib。

vs中加入 附加包含目錄 ,附加庫目錄,注意這裡 需要加上boost 和mongodb的

另外還需要,在鏈結裡邊 加入輸入

mongoclient.lib

dbghelp.lib

ws2_32.lib

進入vs 輸入測試**

#include #include "mongo/client/dbclient.h"

using namespace std;

int main()

catch(mongo::dbexception &e)

}

執行,成功,但這僅僅是 release 靜態 版本的編譯成功,如果要編譯debug版本的 就需要用到整個源**了

值得注意的是,這個方法編譯成功後 依然會有許多 boost 鏈結的問題 ,這個我的解決辦法是 手動加入

#pragma comment(lib, "boost_filesystem-vc100-mt-1_49.lib")

並且拷貝 缺少的boost dll到程式的執行目錄,真是麻煩啊。

mongodb C 驅動VS2012編譯

2 安裝boost庫 1.49版本 解壓後雙擊bootstrap.bat,生成bjam.exe後,cd到目錄c boost下,將boost 1 49更名為boost了 編譯boost。編譯命令 c boost bjam variant release with filesystem with thr...

Qt編譯Oracle OCI驅動

工作中經常用到oracle,而預設情況下qt只有sqlite和odbc驅動,網上有相應的驅動安裝介紹,自己實驗可行 qt環境 qt 5.0.2 mingw4.7.2 win7 32bit 開啟qt command prompt,分別執行以下命令,以編譯oracle驅動 set include inc...

Qt編譯MySql驅動

我使用的環境是 vs2010 qt4.8.5 mysql5.6 首先,通過qt 4.8.5 command prompt進入qtdir src plugins sqldriver mysql目錄之下。而mysql預設安裝目錄是有空格的 program files mysql makefile無法準確...