2012-07-18 28 views
2

我正在嘗試爲我的應用程序編寫一個基於C的小型客戶端,用於mongo數據庫。首先讓我說,現在我很久沒有用C語言編程了,所以可能是我面對的問題是一個非常基本的問題!我只是無法讓我的代碼編譯:-)Mac OSX上的MongoDB C驅動程序Lion

我正在使用64位Apple Macbook Pro(OSX Lion)。海合會:

Target: i686-apple-darwin11 
Thread model: posix 
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00) 

我GIT克隆mongo c driver,做一個git結帳到0.6,然後跑去做。

make 
make install 
make test 

測試運行良好和庫被正確安裝在/ usr/local/lib目錄/ 與.h文件要正確地到/ usr /本地/包括。

然後我複製粘貼一段代碼到一個名爲data.c文件,如下所示:

#include <stdio.h> 
#include "mongo.h" 

int main() { 
    mongo conn[1]; 
    int status = mongo_connect(conn, "127.0.0.1", 27017); 
    return 0; 
} 

沒什麼特別的,只是想打開一個連接。當我嘗試編譯此問題時,出現以下錯誤:

gcc --std=c99 -I/usr/local/include -L/usr/local/lib -o data data.c -lmongoc 

Undefined symbols for architecture x86_64: 
    "_mongo_connect", referenced from: 
     _main in ccjPPPVs.o 
ld: symbol(s) not found for architecture x86_64 
collect2: ld returned 1 exit status 

我在做什麼錯?

+0

也許這可以幫助:http://stackoverflow.com/ question/8034568/undefined-symbols-for-architecture-x86-64-which-architecture-should-i-use – 2012-07-18 12:40:13

+0

nope。最奇怪的是,測試工作,但我的代碼甚至沒有編譯相同的海灣合作委員會:( – aishwarya 2012-07-18 12:53:48

+0

測試的輸出記錄在某處? – 2012-07-18 13:20:31

回答

1

對於靜態庫而言,mac鏈接似乎存在問題。

+0

上發佈了測試結果,我得到了'ld:library for -lcrt0 .o' – aishwarya 2012-07-19 13:09:33

相關問題