I Installed it from:

http://download.opensuse.org/repositories/network:/messaging:/zeromq:/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/5b9f3f76e6610536078cb9c16072aac9

    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-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.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
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

Reply via email to