簡體   English   中英

如何在Ubuntu中安裝和使用mongodb c ++驅動程序?

[英]How to install and use mongodb c++ driver in Ubuntu?

官方文檔似乎缺少有關安裝和使用c ++驅動程序的分步說明。 這個線索和答案似乎更加挑釁。 但是我仍然不確定自己在做什么,因為我無法在Ubuntu $ locate client/dbclient.h ,就像沒有安裝mongo驅動程序一樣。 所以,這就是我所做的:

  1. 在此鏈接下載驅動程序-ok
  2. 解壓縮存檔-確定
  3. 像這樣安裝scons $ sudo apt-get install scons
  4. 做了$ scons然后
  5. sudo $ scons install
  6. 打開/etc/ld.so.conf文件並添加/usr/local/lib

完成所有這些步驟后,我仍然無法在系統中找到client/dbclient.h 好像我錯過了什么。 此外,當我進入安裝庫的階段時,我想閱讀該庫的核心,因為在Web上的小教程中,我找不到想要的一切(我想是因為缺少完整的教程)類似於Python )。 因此,您能否也請建議我將使用哪些庫文件來學習函數的api?

編輯

而且此官方鏈接似乎已過時,因為$ scons --full install導致錯誤消息No such option: --full 缺少教程,過時的文檔以及陡峭的學習曲線恕我直言,這使c ++的使用出現了很多問題。

編輯

好吧,似乎這個文檔不僅僅是過時的,而且是不正確的,因為它應該是:

scons --prefix=/usr/include install.

但是,即使我指定了--prefix=/usr/include ,安裝過程后我也無法在此文件夾中找到任何mongo文件。 我面對的正是同樣的問題,因為在這一個家伙線程 我猜,我的最后一個問題應該是“世界上是否有人在C ++中使用mongodb?”

編輯

如果我嘗試去做

$ sudo git clone git@github.com:mongodb/mongo-cxx-driver.git

然后我Could not read from remote repository等。似乎他們做了一切工作,以防止在c ++中使用mongdb。

編輯 :這篇文章獲得了大量的流量,但是描述了如何構建現在正式過期的“舊版C ++”驅動程序。 舊版C ++驅動程序已被新的C ++ 11驅動程序淘汰。 使用C ++編寫將與MongoDB通信的客戶端應用程序時,新的C ++ 11驅動程序應該是首選。 有關如何構建新的C ++ 11驅動程序的信息,請參見:

https://github.com/mongodb/mongo-cxx-driver/wiki/Quickstart-Guide-(新驅動程序)

可在C ++驅動程序的GitHub Wiki頁面上找到構建驅動程序的現代說明。 請參閱以下內容:

https://github.com/mongodb/mongo-cxx-driver/wiki/Download-and-Compile-the-Legacy-Driver

https://github.com/mongodb/mongo-cxx-driver/wiki/教程

一年后的注釋:上面的許多鏈接現在已過時,並指向這些github頁面 該頁面比上面的響應者所預期的要通用。 然后有一個指向本教程的指針,雖然很好,但是確實做了一些假設,即您的開發環境或多或少像mongo開發人員的一樣。

即使在ubuntu 16.04上,航行也不如人們所願。 立即閱讀所有帶有前綴“ Here be dragons”的內容。

幾個值得注意的問題:

  • 本教程指向通過curl獲取的特定文件,而不是指向github存儲庫並建議進行克隆。 這是過時的秘訣。 如果我告訴我的基礎結構獲取3.0.1版,它將很高興永遠做到這一點,而不是進行更新。 也就是說,從git編譯似乎很好。

  • 前提條件是安裝libmongoc。 看起來從標准ubuntu軟件包安裝就足夠了,因為這就是所引用頁面的內容。 但是mongocxx安裝程序希望> = 1.3.4。 因此需要從git安裝。

  • 它取決於libbson> = 1.3.4,此版本晚於ubuntu 16.04安裝的版本。 因此,也需要從git安裝它。

  • 請注意,所有git軟件包都沒有指定要獲取生產版本的請求分支或標記。 查看master上的所有標簽,並選擇名稱中沒有“ rc”的數字最大標簽。 名為“ release”或“ current”的標簽會很普通。

  • 構建(鍵入make )嘗試對子軟件包EP_mnmlstc_core進行make安裝,但失敗。 因此,整個構建顯然必須以root用戶身份運行。

  • 起初,pkg-config在mongocxx上對我不起作用。 然后它做到了。 我想我做了一些微妙的錯別字,我看不到回頭,但我仍然看不到。 另外,發生了一些事情,因為它起作用了。

我的編譯行是這樣的:

g++ --std=c++11 c++-hello-world-v3.cc -o hw   \
    $(pkg-config --cflags --libs libmongocxx) \
    -Xlinker -rpath /usr/local/lib

我真的很想在mongo的github repo上提交所有這些文檔問題。 不幸的是,他們禁用了問題跟蹤器,而是將我指向他們的jira實例,並且那里似乎沒有創建問題的權利。 (不過,有時我想念的是眼前的表情。)[更新:David Golden親切地輸入了錯誤信息,並指出了我可能也有這種感覺。]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM