I'm trying to get Go ZMQ4 binding to work on windows. Unfortunately, i'm not able to build the zmq library neither Gozmq software and get the following errors:
*** Since this library must not contain undefined symbols,
* because either the platform does not support them or it was explicitly requested with -no-undefined, libtool will only create a static version of it. make[2]: Leaving directory /e/Users/mmarques/Desktop/zeromq-4.0.5/src' make[1]: Leaving directory
/e/Users/mmarques/Desktop/zeromq-4.0.5/src' Making all in doc make[1]: Entering directory /e/Users/mmarques/Desktop/zeromq-4.0.5/doc' make[1]: Nothing to be done for
all'. make[1]: Leaving directory /e/Users/mmarques/Desktop/zeromq-4.0.5/doc' Making all in perf make[1]: Entering directory
/e/Users/mmarques/Desktop/zeromq-4.0.5/perf' CXX local_lat.o CXXLD local_lat.exe local_lat.o: In function main': e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:45: undefined referenc e to
__imp_zmq_init' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:51: undefined referenc e to __imp_zmq_socket' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:57: undefined referenc e to
__imp_zmq_bind' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:63: undefined referenc e to __imp_zmq_msg_init' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:69: undefined referenc e to
__imp_zmq_recvmsg' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:75: undefined referenc e to __imp_zmq_msg_size' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:79: undefined referenc e to
__imp_zmq_sendmsg' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:72: undefined referenc e to __imp_zmq_strerror' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:86: undefined referenc e to
__imp_zmq_msg_close' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:92: undefined referenc e to __imp_zmq_sleep' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:94: undefined referenc e to
__imp_zmq_close' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:100: undefined referen ce to __imp_zmq_term' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:102: undefined referen ce to
__imp_zmq_strerror' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:81: undefined referenc e to __imp_zmq_strerror' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:59: undefined referenc e to
__imp_zmq_strerror' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:65: undefined referenc e to __imp_zmq_strerror' e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:96: undefined referenc e to
__imp_zmq_strerror' local_lat.o:e:\Users\mmarques\Desktop\zeromq-4.0.5\perf/local_lat.cpp:88: more u ndefined references to __imp_zmq_strerror' follow collect2.exe: error: ld returned 1 exit status make[1]: *** [local_lat.exe] Error 1 make[1]: Leaving directory
/e/Users/mmarques/Desktop/zeromq-4.0.5/perf' make: * [all-recursive] Error 1
What I've done was download Zmq Sources and perform a
sh configure
make
Can anyone help me figure out how to solve this, and setup up a Zmq Go Binding on Windows environment?
Make sure that you have the MinGW gcc toolchain installed. Go needs it to be able to call C code from Go code which zmq4 is doing. If you check out the zmq4 repo you can see the .h header file. See: https://golang.org/doc/install and https://golang.org/cmd/cgo/.