2012-09-18 29 views
11

zeromq öğreticisinden örnek hello_world.c dosyasını derlemeye çalışıyorum: http://zguide.zeromq.org/page:all#Ask-and-Ye-Shall-Receive OSX Mountain Lion'da her şeyin yüklü olduğuna eminim. Emin zmq dylib ya da başlıkları ya da benim $ PATH olmak için bir derleyici bayrağı ekleyecek eğer en emin değil C. deneyimli değilimBasit bir merhaba dünya ZeroMQ C örneği derleyin, bayraklar derleyin?

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) 

:

clang -Wall hwserver.c -o hwserver 

bana bir hata veriyor kapatır.
libzmq.3.dylib 
libzmq.a 
libzmq.dylib 
libzmq.la 

ve

/usr/local/include:

zmq.h 
zmq_utils.h 

ve echo $ PATH:

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

cevap

22

listeleyip/usr/local/lib

Sorunuzdaki ZeroMQ kütüphaneleri, ancak aslında bunlarla bağlantıyı yapmıyorsunuz. Bu komut satırı değiştirin: ekstra argümanlardan

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

Açıklama:

  • -L/usr/local/lib kütüphane arama yoluna bir yol (/usr/local/lib) eklemek için bağlayıcı söyler.
  • -lzmq kitaplığa zmq kitaplığı ile bağlantı kurmasını söyler.

$PATH ortam değişkeni bununla ilgisi olmayan, sadece nerede komutları aramaya kabuk söyler.

+0

Bağlayıcı argümanlarının hwserver.c -o hwserver'dan sonra bulunması gerektiğini ekleyebilirim. – nnnmmm