2012-09-18 20 views
11

ज़ीरोम ट्यूटोरियल से उदाहरण hello_world.c को संकलित करने का प्रयास कर रहा है: http://zguide.zeromq.org/page:all#Ask-and-Ye-Shall-Receive बहुत यकीन है कि मेरे पास ओएसएक्स माउंटेन शेर में सबकुछ स्थापित है।सरल हैलो दुनिया संकलित ZeroMQ सी उदाहरण, झंडे संकलित?

Undefined symbols for architecture x86_64: 
"_zmq_bind", referenced from: 
    _main in hwserver-OgrEe6.o 
"_zmq_ctx_new", referenced from: 
    _main in hwserver-OgrEe6.o 
"_zmq_msg_close", referenced from: 
    _main in hwserver-OgrEe6.o 
"_zmq_msg_data", referenced from: 
    _main in hwserver-OgrEe6.o 
"_zmq_msg_init", referenced from: 
    _main in hwserver-OgrEe6.o 
"_zmq_msg_init_size", referenced from: 
    _main in hwserver-OgrEe6.o 
"_zmq_msg_recv", referenced from: 
    _main in hwserver-OgrEe6.o 
"_zmq_msg_send", referenced from: 
    _main in hwserver-OgrEe6.o 
"_zmq_socket", referenced from: 
    _main in hwserver-OgrEe6.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

मैं सबसे सी में अनुभवी नहीं कर रहा हूँ सुनिश्चित नहीं हैं कि अगर मुझे यकीन है कि zmq dylib या हेडर या मेरे $ पथ होने के लिए एक संकलक झंडा जोड़ेंगे:

clang -Wall hwserver.c -o hwserver 

मुझे एक त्रुटि देता है बंद।

libzmq.3.dylib 
libzmq.a 
libzmq.dylib 
libzmq.la 

और में/usr/स्थानीय/में शामिल हैं::

zmq.h 
zmq_utils.h 

और गूंज $ पथ:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/lib/:/usr/local/include/ 

उत्तर

22

आप सूची

/usr/स्थानीय/lib में

आपके प्रश्न में ज़ीरोएमक्यू पुस्तकालय, लेकिन वास्तव में आप लिंक उनके साथ नहीं हैं। यह करने के लिए कमांड लाइन बदलें: अतिरिक्त तर्कों की

clang -Wall hwserver.c -o hwserver -L/usr/local/lib -lzmq 

स्पष्टीकरण:

  • -L/usr/local/lib पुस्तकालय खोज पथ के लिए एक रास्ता (/usr/local/lib) जोड़ने के लिए लिंकर बताता है।
  • -lzmq लाइब्रेरी को zmq लाइब्रेरी से लिंक करने के लिए कहता है।

$PATH पर्यावरण परिवर्तक के पास इसके साथ कुछ लेना देना नहीं है, यह सिर्फ शेल को कहां आदेशों को देखने के लिए कहता है।

+0

मैं जोड़ सकता हूं कि लिंकर तर्कों को 'hwserver.c -o hwserver' के बाद स्थित होना चाहिए। – nnnmmm

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