2015-08-27 104 views
1

我已經在Mac OSX 10.9.5上編譯ZeroMQ,然後使用github.com/pebbe/zmq4鏈接到一個簡單的Go程序,但是我收到了這個錯誤不明白或知道如何補救。在Mac上連接到zeromq的編譯版本時編譯Go程序

# github.com/pebbe/zmq4 
ld: warning: ignoring file /usr/local/lib/libzmq.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libzmq.dylib 
Undefined symbols for architecture i386: 
    "_zmq_bind", referenced from: 
     __cgo_59814aec404b_C2func_zmq_bind in zmq4.cgo2.o 
     __cgo_59814aec404b_Cfunc_zmq_bind in zmq4.cgo2.o 
    (maybe you meant: __cgo_59814aec404b_Cfunc_zmq_bind, __cgo_59814aec404b_C2func_zmq_bind) 
    "_zmq_close", referenced from: 
     __cgo_59814aec404b_C2func_zmq_close in zmq4.cgo2.o 
     __cgo_59814aec404b_Cfunc_zmq_close in zmq4.cgo2.o 
    (maybe you meant: __cgo_59814aec404b_C2func_zmq_close, 
... 
    "_zmq_z85_encode", referenced from: 
     __cgo_59814aec404b_Cfunc_zmq_z85_encode in zmq4.cgo2.o 
    (maybe you meant: __cgo_59814aec404b_Cfunc_zmq_z85_encode) 
ld: symbol(s) not found for architecture i386 
collect2: error: ld returned 1 exit status 

我覺得很有道理的dylib爲x86_64的(在Mac)製成,但爲什麼去試圖與i386的鏈接?我如何控制並使其鏈接不同?或者即使它是正確的?

回答

0

如果您自己構建libzmq,請使用--disable-shared --enable-static鍵進行配置。如果您使用自制軟件,請卸載zmq並手動構建庫。如果您需要「胖」通用靜態庫,請使用以下腳本: https://github.com/drewcrawford/libzmq-ios