HBPVIS / ZeroEQ

Cross-platform C++ library for fast binary and REST messaging
https://hbpvis.github.io/
Other
41 stars 25 forks source link

Ubuntu 16.04 compile error #194

Closed ingowald closed 7 years ago

ingowald commented 7 years ago

Hey, Just checked out ZeroEQ (required as a dependency for @favreau 's Brayns package), and get the following compile error(s) (using latest libzmq-dev package, installed right now just for this project): (System Ubuntu 16.04, up to date with latest updates)

[ 44%] Building CXX object zeroeq/CMakeFiles/ZeroEQ.dir/connection/broker.cpp.o In file included from /home/wald/Projects/ZeroEQ/zeroeq/connection/broker.cpp:9:0: /home/wald/Projects/ZeroEQ/zeroeq/detail/sender.h: In constructor ‘zeroeq::detail::Sender::Sender(const zeroeq::URI&, void, int)’: /home/wald/Projects/ZeroEQ/zeroeq/detail/sender.h:43:33: error: ‘ZMQ_SNDHWM’ was not declared in this scope zmq_setsockopt( socket, ZMQ_SNDHWM, &hwm, sizeof( hwm )); ^ /home/wald/Projects/ZeroEQ/zeroeq/detail/sender.h: In destructor ‘zeroeq::detail::Sender::~Sender()’: /home/wald/Projects/ZeroEQ/zeroeq/detail/sender.h:51:39: error: ‘zmq_ctx_destroy’ was not declared in this scope zmq_ctx_destroy( _context ); ^ /home/wald/Projects/ZeroEQ/zeroeq/detail/sender.h: In member function ‘void zeroeq::detail::Sender::_getEndPoint(std::cxx11::string&, std::cxx11::string&) const’: /home/wald/Projects/ZeroEQ/zeroeq/detail/sender.h:100:37: error: ‘ZMQ_LAST_ENDPOINT’ was not declared in this scope if( zmq_getsockopt( socket, ZMQ_LAST_ENDPOINT, &buffer, &size ) == -1 ) ^ /home/wald/Projects/ZeroEQ/zeroeq/detail/sender.h: In member function ‘void zeroeq::detail::Sender::_createContext(void*)’: /home/wald/Projects/ZeroEQ/zeroeq/detail/sender.h:125:32: error: ‘zmq_ctx_new’ was not declared in this scope _context = zmq_ctx_new(); ^ /home/wald/Projects/ZeroEQ/zeroeq/connection/broker.cpp: In member function ‘void zeroeq::connection::detail::Broker::process(zeroeq::detail::Socket&)’: /home/wald/Projects/ZeroEQ/zeroeq/connection/broker.cpp:67:47: error: ‘zmq_msg_recv’ was not declared in this scope zmq_msgrecv( &msg, socket.socket, 0 ); ^ compilation terminated due to -fmax-errors=5. zeroeq/CMakeFiles/ZeroEQ.dir/build.make:86: recipe for target 'zeroeq/CMakeFiles/ZeroEQ.dir/connection/broker.cpp.o' failed make[2]: [zeroeq/CMakeFiles/ZeroEQ.dir/connection/broker.cpp.o] Error 1 CMakeFiles/Makefile2:2530: recipe for target 'zeroeq/CMakeFiles/ZeroEQ.dir/all' failed make[1]: [zeroeq/CMakeFiles/ZeroEQ.dir/all] Error 2 Makefile:160: recipe for target 'all' failed make: *** [all] Error 2

favreau commented 7 years ago

Quick guess, you might want to upgrade your libzmq ubuntu package. I think we are using version 3 there but cannot check right now (writing from tablet in the bus 😉)

eile commented 7 years ago

sudo apt-get libzmq3-dev works for my Ubuntu 16.04

ingowald commented 7 years ago

Thx, that works! (though it's 'sudo apt install' - 'sudo apt-get' gives an error ;-).

Would be nice to have a check in the cmakefile, though - it's very confusing that ubuntu does find a 'libzmq-dev' package (naturally the first thing I tried when it complained about missing zmq library), but that this is not the right version...

Anyway - working now!