2015-05-04 27 views
0

在我的項目(使用WAF/WScript的基礎構建系統),我現在加入MongoDB的C++的API驅動。我想通了,「libmongoclient.a」不獲取添加爲一個連接器選項(在編譯時),我得到所有未定義參考MongoDB的C++驅動程序的API調用。如何WAF建設者的WScript的腳本添加depdency

我想明白了,我怎麼修改我的WScript這樣它本身拿起mongoclient相關的庫並正確連接它。它可能涉及更新wscript的配置功能。我是waf構建系統的新手,不確定如何更改它。

I have built and installed the mongodb c++ driver as follows: 
- INCLUDE: /usr/local/include/mongo/ 
- LIB:  /usr/local/lib/libmongoclient.a 

我之前在這方面發佈了類似的問題,上面的問題是更具體的問題陳述。 https://stackoverflow.com/questions/30020574/building-project-with-waf-script-and-eclipse

因爲我剛剛從Eclipse中調用./waf,我相信,我指定到Eclipse的構建環境的選項不是由WAF(因此對於mongoclient庫選項)接走。

回答

0

我想通了這一點和步驟如下:在configure命令/功能

  1. 添加以下檢查。

    conf.check_cfg(包= 'libmongoclient',ARGS = [ ' - CFLAGS', '--libs'], uselib_store = 'MONGOCLIENT',強制性=真)

  2. 在此步驟之後,我們需要一個程序包配置文件(.PC)添加到/ usr/local/lib目錄/ pkgconfig路徑。這是我們指定lib和頭文件的路徑的文件。粘貼下面這個文件的內容。

    前綴=的/ usr /本地 LIBDIR =的/ usr /本地/ lib中 了includedir =的/ usr /本地/包含/蒙戈

    名稱:libmongoclient 描述:MongoDB的C++驅動 版本:0.2 利布斯: -L $ {LIBDIR} -lmongoclient CFLAGS:-I $ {了includedir}

  3. 加入上述庫到構建函數到sepcific程序,它依賴於上述依賴(即MongoClient)。

    遷移率= BLD( 目標= '倉/遷移率', 特徵= 'CXX cxxprogram', 源= '的src/main.cpp中', 使用= 'MOB-對象MONGOCLIENT', )