2013-08-02 94 views
4

我已經爲我的操作系統x從http://dl.mongodb.org/dl/cxx-driver下載了最新版本的MongoDB C++驅動程序。然後我在os x終端中使用tar xvf命令解壓縮。之後,我運行scons來建立驅動程序。它通過提供以下信息在OS X中構建和安裝MongoDB C++驅動程序

-- some messages -- 
ranlib build/libmongoclient.a 
ranlib: file: build/libmongoclient.a(backtrace.o) has no symbols 
ranlib: file: build/libmongoclient.a(posix_fadvise.o) has no symbols 
ranlib: file: build/libmongoclient.a(ssl_manager.o) has no symbols 
Install file: "build/libmongoclient.a" as "libmongoclient.a" 
scons: done building targets. 

成功打造這樣,那我運行命令「scons的安裝」到庫安裝到我的機器。

--some messages -- 
scons: done reading SConscript files. 
scons: Building targets ... 
scons: `install' is up to date. 
scons: done building targets. 

但是,當我檢查libmongoclient庫的/ usr/local目錄時,它不在那裏。 但在我提取的mongoDB驅動程序文件夾中,有一個名爲「libmongoclient.a」的文件。但是沒有擴展名爲「.dylib」的文件。那麼如何使用mongoDB Xcode & gcc C++? 有人幫我連接Xcode的libmongoclient庫。

+0

你不必首先構建C驅動?下面是我在github的構建指令中看到的內容:「C++驅動程序在內部使用libbson和MongoDB C驅動程序,如果Cbs驅動程序尚未存在,它將安裝libbson。」此鏈接是從mongodb-dot-org的C++ MongoDB驅動程序頁面(https://docs.mongodb.org/getting-started/cpp/client/#compile-the-driver)指導的。我想問的原因是:我在Cygwin上的C安裝中遇到了WINSOCK問題。不會進入細節並演變成一個單獨的問題,但不希望重新創建,因爲已經有重複。 – Luv2code

+0

你的意思是,C驅動程序還是C++驅動程序?兩者略有不同。對? – Kaje

+0

你如何解釋我的報價,以上?我解釋它是因爲我需要安裝C驅動程序,因爲C++驅動程序在內部使用它。另外,我沒有libbson,所以我需要C驅動程序構建來創建它。 – Luv2code

回答

3

我花了一段時間纔得到這個工作。 希望你能得到你從以下步驟工作:

在Xcode

創建一個新的C++項目,我複製的代碼<mongo_driver_install>/src/mongo/client/examples/tutorial.cpp作爲測試

在Build設置/搜索路徑:

screen shot of search paths

添加以下您Header Search Paths

/path/to/mongo-cxx-driver-nightly/src 

和Boost庫的頭文件的相應路徑(該文件夾應包含boost文件夾):

/usr/local/Cellar/boost/1.54.0/include 

以下內容添加到您的Library Search Paths

/usr/local/lib (in my case holds all of the boost libraries) 
/path/to/mongo-cxx-driver-nightly 

鏈接二進制文件

Build Phases/Link Binary with Libraries設置:

Screen shot of build phases

添加以下二進制文件:

/path/to/mongo-cxx-driver-nightly/libmongoclient.a 
/usr/local/lib/libboost_thread-mt.dylib 
/usr/local/lib/libboost_system-mt.dylib 
/usr/local/lib/libboost_filesystem-mt.dylib 
/usr/local/lib/libboost_program_options-mt.dylib 
+0

我還需要添加'/ usr/local/lib/libboost_regex-mt.dylib' – Clay

相關問題