2013-02-18 10 views
6

मैं सरल मोंगो सी क्लाइंट लिखने का प्रयास करता हूं। स्रोत फ़ाइल (एसी):mongo-c-driver उदाहरण संकलित नहीं कर सकता

gcc -I/usr/local/include -L/usr/local/lib -lmongoc a.c 

लेकिन कोई त्रुटि मिलती है:

a.c:(.text+0xd): undefined reference to `mongo_init' 

फ़ाइलें/usr/स्थानीय/शामिल/मोंगो

#include <stdio.h> 
#define MONGO_HAVE_STDINT 
#include <mongo.h> 

void mongo_init_c(mongo *con) 
{ 
    mongo_init(con); 
} 

int main() { 
    return 0; 
} 

और मैं के साथ संकलित करने के लिए प्रयास करें। एच और /usr/local/lib/libmongoc.so मौजूद है

मैं सही ढंग से एसी संकलित कैसे कर सकता हूं?

पेज। मोंगो-2.0.4, जीसीसी-4.6, मोंगो-सी चालक - GitHub

से खींचा

अद्यतन

$ एनएम /usr/local/lib/libmongoc.so | ग्रेप init

000034e0 T _init 
0000dd10 T bson_init 
0000c740 T bson_init_data 
0000c7b0 T bson_init_finished_data 
0000dc10 T bson_init_size 
0000d060 T bson_iterator_init 
0000a5e0 T gridfile_init 
00009af0 T gridfile_writer_init 
000095e0 T gridfs_init 
00010a18 R initialBufferSize 
00005f40 T mongo_cursor_init 
00008da0 T mongo_env_sock_init 
00005d90 T mongo_init 
000057b0 T mongo_init_sockets 
00004800 T mongo_md5_init 
00005e40 T mongo_replica_set_init 
00005f00 T mongo_replset_init 
00005b80 T mongo_write_concern_init 

$ जीसीसी मैं/usr/स्थानीय/शामिल एल/usr/स्थानीय/lib -Wall -Werror -lmongoc एसी

/tmp/cccuNEp1.o: In function `mongo_init_c': 
a.c:(.text+0xd): undefined reference to `mongo_init' 
+0

'nm /usr/local/lib/libmongoc.so चलाने का प्रयास करें। grep init' और हमें बताएं कि यह क्या कहता है। इसके अलावा, 'gcc -Wall -Werror' के साथ संकलित करें। –

+0

@ जॉन Zwinck अद्यतन देखें – user1312837

उत्तर

6

स्रोत फ़ाइल के बाद पुस्तकालय को जोड़ने का प्रयास करें, gcc a.c -lmongoc की तरह। ऐसा इसलिए है क्योंकि आप एक पारंपरिक एकल-पास लिंकर का उपयोग कर रहे हैं, जो कमांड लाइन पर निर्दिष्ट वस्तुओं के बाद, पिछले नहीं, निर्भरताओं को संतुष्ट करने की अपेक्षा करता है।

+1

मुझ पर शर्म आती है! यह काम करता है, धन्यवाद – user1312837

संबंधित मुद्दे