And so does the shared library: $ objdump -T libzmq.so.5.1.5 | grep msg_group 0000000000075a60 g DF .text 0000000000000005 Base zmq_msg_group
Make sure you have actually installed it from that repository and not from Ubuntu's. On Wed, 2018-09-26 at 17:10 +0200, Stephan again wrote: > And the static library installed from this repository seems to have > the > draft api included. Here is the test for that: > > nm -gC /usr/lib/x86_64-linux-gnu/libzmq.a | grep zmq_msg_group > > nm: src_libzmq_la-devpoll.o: no symbols > nm: src_libzmq_la-gssapi_mechanism_base.o: no symbols > nm: src_libzmq_la-gssapi_client.o: no symbols > nm: src_libzmq_la-gssapi_server.o: no symbols > nm: src_libzmq_la-kqueue.o: no symbols > nm: src_libzmq_la-poll.o: no symbols > nm: src_libzmq_la-pollset.o: no symbols > nm: src_libzmq_la-precompiled.o: no symbols > nm: src_libzmq_la-select.o: no symbols > nm: src_libzmq_la-vmci.o: no symbols > nm: src_libzmq_la-vmci_address.o: no symbols > nm: src_libzmq_la-vmci_connecter.o: no symbols > nm: src_libzmq_la-vmci_listener.o: no symbols > 0000000000000fb0 T zmq_msg_group(zmq_msg_t*) <- matched > > Kind Regards > > Stephan > > > On 26.09.2018 17:05, Stephan again wrote: > > > > I Installed it from: > > > > http://download.opensuse.org/repositories/network:/messaging:/zerom > > q:/release-draft/xUbuntu_18.04/ > > > > Hoping that it was compiled accordingly... > > > > This: > > > > g++ Discovery.cpp /usr/lib/x86_64-linux-gnu/libzmq.a -lpthread > > -DZMQ_BUILD_DRAFT_API=1 -DENABLE_DRAFTS=On -o test > > > > makes it even worth: > > > > /usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-socket_base.o): > > In > > function `zmq::socket_base_t::connect(char const*)': > > (.text+0x4b26): undefined reference to `pgm_freeaddrinfo' > > /tmp/cc62suQj.o: In function `msg_send(zmq_msg_t*, void*, char > > const*, > > char const*)': > > Discovery.cpp:(.text+0x8e): undefined reference to > > `zmq_msg_set_group' > > /tmp/cc62suQj.o: In function `msg_recv_cmp(zmq_msg_t*, void*, char > > const*, char const*)': > > Discovery.cpp:(.text+0x148): undefined reference to `zmq_msg_group' > > /tmp/cc62suQj.o: In function `main': > > Discovery.cpp:(.text+0x30e): undefined reference to `zmq_leave' > > Discovery.cpp:(.text+0x37f): undefined reference to `zmq_join' > > Discovery.cpp:(.text+0x3c3): undefined reference to `zmq_join' > > Discovery.cpp:(.text+0x407): undefined reference to `zmq_join' > > Discovery.cpp:(.text+0x57c): undefined reference to `zmq_join' > > Discovery.cpp:(.text+0x668): undefined reference to `zmq_leave' > > /usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-zmq_utils.o): In > > function `zmq_curve_keypair': > > (.text+0x3e6): undefined reference to `crypto_box_keypair' > > /usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-zmq_utils.o): In > > function `zmq_curve_public': > > (.text+0x482): undefined reference to `crypto_scalarmult_base' > > /usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-ip.o): In > > function > > `zmq::initialize_network()': > > (.text+0x480): undefined reference to `pgm_init' > > (.text+0x511): undefined reference to `pgm_error_free' > > /usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-ip.o): In > > function > > `zmq::shutdown_network()': > > (.text+0x585): undefined reference to `pgm_shutdown' > > /usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-random.o): In > > function `zmq::random_open()': > > (.text+0x95): undefined reference to `sodium_init' > > /usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-random.o): In > > function `zmq::random_close()': > > (.text+0xc1): undefined reference to `randombytes_close' > > /usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-pgm_socket.o): In > > function `zmq::pgm_socket_t::init_address(char const*, > > pgm_addrinfo_t**, unsigned short*)': > > (.text+0x17e): undefined reference to `pgm_getaddrinfo' > > (.text+0x26f): undefined reference to `pgm_error_free' > > > > .... > > > > Kind Regards > > > > Stephan > > > > > > > > On 26.09.2018 16:55, Jake wrote: > > > ZeroMQ itself needs to be compiled with ENABLE_DRAFTS in CMake. > > > You've added it to the compiler flags when building your own > > > application. Did you compile ZeroMQ yourself or are you using a > > > distro-provided version? > > > > > > For the static library, one way is to give the full path to the > > > .a > > > file instead of using -lzmq. gcc default behavior prefers the > > > shared > > > object when both are present. > > > > > > -Jake > > > > > > > > > On Wed, Sep 26, 2018 at 10:51 AM Stephan again > > > <op...@vs.uni-kassel.de <mailto:op...@vs.uni-kassel.de>> wrote: > > > > > > Hi Bill, > > > > > > adding -DENABLE_DRAFTS=On does not help: > > > > > > g++ Discovery.cpp -lzmq -DZMQ_BUILD_DRAFT_API=1 > > > -DENABLE_DRAFTS=On -o test > > > > > > I also checked my installed libraries with "nm -gC <library | > > > grep zmq_msgs_group": > > > > > > /usr/lib/x86_64-linux-gnu/libzmq.a -> match > > > /usr/lib/x86_64-linux-gnu/libzmq.so -> no match > > > /usr/lib/x86_64-linux-gnu/libzmq.so.5 -> no match > > > /usr/lib/x86_64-linux-gnu/libzmq.so.5.1.5 -> no match > > > > > > I am not so into this dynamic and static library stuff, but > > > my > > > build chain is linking agains > > > "/usr/lib/x86_64-linux-gnu/libzmq.so". Is that the problem? > > > How > > > do I force it on command line to link against the static > > > version. > > > > > > Kind Regards > > > > > > Stephan > > > > > > > > > On 26.09.2018 16:08, Bill Torpey wrote: > > > > Hi Stephan: > > > > > > > > The RADIO/DISH sockets are considered DRAFT, which is > > > > probably > > > > why you’re getting these errors. > > > > > > > > There are a couple of possibilities: > > > > > > > > - You may be linking against a version of libzmq that > > > > doesn’t > > > > include the draft APIs. In order to build with draft > > > > support, > > > > the build needs to specify "-DENABLE_DRAFTS=On” on the > > > > cmake > > > > command line. Make sure your libzmq was built with support > > > > for > > > > the draft APIs. > > > > > > > > > > > > - You also need to enable draft APIs in your code, similar > > > > to > > > > following: > > > > > > > > #define ZMQ_BUILD_DRAFT_API > > > > #include <zmq.h> > > > > > > > > The #define makes the draft APIs visible to your code. > > > > > > > > (Never mind — you’re already doing this on the compile > > > > command). > > > > > > > > Hope this helps. > > > > > > > > Bill > > > > > > > > > On Sep 26, 2018, at 9:13 AM, Stephan again > > > > > <op...@vs.uni-kassel.de <mailto:op...@vs.uni-kassel.de>> > > > > > wrote: > > > > > > > > > > Hi, > > > > > > > > > > I asked this question/issue one and a half year ago > > > > > (https://lists.zeromq.org/mailman/private/zeromq-dev/2017 > > > > > -January/031309.html). > > > > > The difference is that I now would like to use zeromq > > > > > (draft > > > > > api) version 4.2.5 under Ubuntu 18.04. > > > > > > > > > > My minimal (not) working example can be found here: > > > > > https://gist.github.com/StephanOpfer/5b9f3f76e6610536078c > > > > > b9c16072aac9 > > > > > > > > > > Compiling it with this command: > > > > > > > > > > g++ Discovery.cpp -lzmq -DZMQ_BUILD_DRAFT_API=1 -o > > > > > test > > > > > > > > > > produces this: > > > > > > > > > > /tmp/ccUwelWs.o: In function `msg_send(zmq_msg_t*, > > > > > void*, > > > > > char const*, char const*)': > > > > > Discovery.cpp:(.text+0x8e): undefined reference to > > > > > `zmq_msg_set_group' > > > > > /tmp/ccUwelWs.o: In function > > > > > `msg_recv_cmp(zmq_msg_t*, > > > > > void*, char const*, char const*)': > > > > > Discovery.cpp:(.text+0x148): undefined reference to > > > > > `zmq_msg_group' > > > > > /tmp/ccUwelWs.o: In function `main': > > > > > Discovery.cpp:(.text+0x30e): undefined reference to > > > > > `zmq_leave' > > > > > Discovery.cpp:(.text+0x37f): undefined reference to > > > > > `zmq_join' > > > > > Discovery.cpp:(.text+0x3c3): undefined reference to > > > > > `zmq_join' > > > > > Discovery.cpp:(.text+0x407): undefined reference to > > > > > `zmq_join' > > > > > Discovery.cpp:(.text+0x57c): undefined reference to > > > > > `zmq_join' > > > > > Discovery.cpp:(.text+0x668): undefined reference to > > > > > `zmq_leave' > > > > > collect2: error: ld returned 1 exit status > > > > > > > > > > Any help is welcome. :) > > > > > > > > > > Kind Regards > > > > > > > > > > Stephan > > > > > > > > > > > > > > > _______________________________________________ > > > > > zeromq-dev mailing list > > > > > zeromq-dev@lists.zeromq.org <mailto:zeromq-...@lists.zero > > > > > mq.org> > > > > > https://lists.zeromq.org/mailman/listinfo/zeromq-dev > > > > > > > > > > > > > > > > _______________________________________________ > > > > zeromq-dev mailing list > > > > zeromq-dev@lists.zeromq.org <mailto:zeromq-dev@lists.zeromq > > > > .org> > > > > https://lists.zeromq.org/mailman/listinfo/zeromq-dev > > > > > > _______________________________________________ > > > zeromq-dev mailing list > > > zeromq-dev@lists.zeromq.org <mailto:zeromq-dev@lists.zeromq.o > > > rg> > > > https://lists.zeromq.org/mailman/listinfo/zeromq-dev > > > > > > > > > > > > _______________________________________________ > > > zeromq-dev mailing list > > > zeromq-dev@lists.zeromq.org > > > https://lists.zeromq.org/mailman/listinfo/zeromq-dev > > > > > > > > _______________________________________________ > > zeromq-dev mailing list > > zeromq-dev@lists.zeromq.org > > https://lists.zeromq.org/mailman/listinfo/zeromq-dev > > _______________________________________________ > zeromq-dev mailing list > zeromq-dev@lists.zeromq.org > https://lists.zeromq.org/mailman/listinfo/zeromq-dev -- Kind regards, Luca Boccassi
signature.asc
Description: This is a digitally signed message part
_______________________________________________ zeromq-dev mailing list zeromq-dev@lists.zeromq.org https://lists.zeromq.org/mailman/listinfo/zeromq-dev