Open jiapei100 opened 3 years ago
Looks like that should be nullptr (or rather ZMQ_NULLPTR) instead of NULL., what compiler and std version are you using?
@gummif Thank you man. nullptr is working fine. However, I got some more ERRORs:
[100%] Linking CXX executable unit_tests
cd ....../cppzmq/build/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/unit_tests.dir/link.txt --verbose=1
/usr/local/bin/c++ -std=c++14 -O3 -DNDEBUG CMakeFiles/unit_tests.dir/buffer.cpp.o CMakeFiles/unit_tests.dir/message.cpp.o CMakeFiles/unit_tests.dir/context.cpp.o CMakeFiles/unit_tests.dir/socket.cpp.o CMakeFiles/unit_tests.dir/socket_ref.cpp.o CMakeFiles/unit_tests.dir/poller.cpp.o CMakeFiles/unit_tests.dir/active_poller.cpp.o CMakeFiles/unit_tests.dir/multipart.cpp.o CMakeFiles/unit_tests.dir/recv_multipart.cpp.o CMakeFiles/unit_tests.dir/send_multipart.cpp.o CMakeFiles/unit_tests.dir/codec_multipart.cpp.o CMakeFiles/unit_tests.dir/monitor.cpp.o CMakeFiles/unit_tests.dir/utilities.cpp.o -o unit_tests /usr/local/lib/libCatch2.a -lpthread /usr/lib/x86_64-linux-gnu/libzmq.so
~/.linuxbrew/bin/ld: /lib/x86_64-linux-gnu/crt1.o: in function `_start':
(.text+0x24): undefined reference to `main'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/message.cpp.o: in function `CATCH2_INTERNAL_TEST_41()':
message.cpp:(.text+0x1dc5): undefined reference to `zmq_msg_set_routing_id'
~/.linuxbrew/bin/ld: message.cpp:(.text+0x1e30): undefined reference to `zmq_msg_routing_id'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/message.cpp.o: in function `CATCH2_INTERNAL_TEST_43()':
message.cpp:(.text+0x24cb): undefined reference to `zmq_msg_set_group'
~/.linuxbrew/bin/ld: message.cpp:(.text+0x2539): undefined reference to `zmq_msg_group'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_2()':
poller.cpp:(.text+0x6): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x1e): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_4()':
poller.cpp:(.text+0x36): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x4e): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_8()':
poller.cpp:(.text+0x67): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x78): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x93): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0xa2): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_6()':
poller.cpp:(.text+0xc7): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0xd8): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0xf0): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0xff): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_10()':
poller.cpp:(.text+0x144): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x162): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x179): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_12()':
poller.cpp:(.text+0x1f4): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x212): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x21f): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x237): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x246): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_32()':
poller.cpp:(.text+0x695): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x736): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x778): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_20()':
poller.cpp:(.text+0x82e): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x853): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x8d4): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x90e): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_18()':
poller.cpp:(.text+0x9cf): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0xa4c): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0xa8a): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_22()':
poller.cpp:(.text+0xb0c): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0xb7b): undefined reference to `zmq_poller_wait_all'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0xbb5): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_42()':
poller.cpp:(.text+0xc3f): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0xcab): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0xd3a): undefined reference to `zmq_poller_modify'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0xd78): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_40()':
poller.cpp:(.text+0xe4b): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0xeb7): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0xf57): undefined reference to `zmq_poller_modify'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0xf95): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_38()':
poller.cpp:(.text+0x106f): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x10e9): undefined reference to `zmq_poller_modify'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x1127): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_36()':
poller.cpp:(.text+0x11df): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x125a): undefined reference to `zmq_poller_modify'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x1298): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_26()':
poller.cpp:(.text+0x134e): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x1370): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x13d4): undefined reference to `zmq_poller_remove'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x140e): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_24()':
poller.cpp:(.text+0x14bf): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x1535): undefined reference to `zmq_poller_remove'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x1573): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_16()':
poller.cpp:(.text+0x162f): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x169d): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x16db): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_28()':
poller.cpp:(.text+0x177e): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x17af): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x1813): undefined reference to `zmq_poller_remove'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x184d): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_14()':
poller.cpp:(.text+0x1b7f): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x1beb): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x1c29): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_34()':
poller.cpp:(.text+0x1cda): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x1d50): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x1ea1): undefined reference to `zmq_poller_remove'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x1f04): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x1f56): undefined reference to `zmq_poller_remove'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_30()':
poller.cpp:(.text+0x20ba): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x2172): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x2212): undefined reference to `zmq_poller_wait_all'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x24a5): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_44()':
poller.cpp:(.text+0x2601): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x267f): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x2824): undefined reference to `zmq_poller_wait_all'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x2a25): undefined reference to `zmq_poller_modify'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x2ac2): undefined reference to `zmq_poller_wait_all'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x2c61): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_50()':
poller.cpp:(.text+0x2ed9): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x2f54): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x2f8a): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x2fa0): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x3048): undefined reference to `zmq_poller_wait_all'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x30e7): undefined reference to `zmq_poller_wait_all'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x3198): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_48()':
poller.cpp:(.text+0x33e9): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x3464): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x353d): undefined reference to `zmq_poller_wait_all'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x35dc): undefined reference to `zmq_poller_wait_all'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x368d): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_46()':
poller.cpp:(.text+0x37fd): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x3878): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x3a1b): undefined reference to `zmq_poller_wait_all'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x3acc): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_52()':
poller.cpp:(.text+0x3f2e): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x3fbe): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x4361): undefined reference to `zmq_poller_wait_all'
~/.linuxbrew/bin/ld: poller.cpp:(.text+0x4412): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_8() [clone .cold]':
poller.cpp:(.text.unlikely+0x119): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_6() [clone .cold]':
poller.cpp:(.text.unlikely+0x18f): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_10() [clone .cold]':
poller.cpp:(.text.unlikely+0x1dc): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_12() [clone .cold]':
poller.cpp:(.text.unlikely+0x2e1): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o:poller.cpp:(.text.unlikely+0x524): more undefined references to `zmq_poller_destroy' follow
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_65()::{lambda(zmq::event_flags)#1}::operator()(zmq::event_flags) const':
active_poller.cpp:(.text+0xa04): undefined reference to `zmq_poller_remove'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_45()':
active_poller.cpp:(.text+0xb7a): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0xc52): undefined reference to `zmq_poller_modify'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0xeea): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_43()':
active_poller.cpp:(.text+0xfda): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x10b3): undefined reference to `zmq_poller_modify'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x134a): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_0()':
active_poller.cpp:(.text+0x140a): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x1774): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_2()':
active_poller.cpp:(.text+0x17e6): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_4()':
active_poller.cpp:(.text+0x1dac): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x1ef6): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x206c): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_24()':
active_poller.cpp:(.text+0x2d4e): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x2dc2): undefined reference to `zmq_poller_remove'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_20()':
active_poller.cpp:(.text+0x2f3c): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `zmq::active_poller_t::add(zmq::socket_ref, zmq::event_flags, std::function<void (zmq::event_flags)>) [clone .constprop.0]':
active_poller.cpp:(.text+0x330a): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_6()':
active_poller.cpp:(.text+0x33e6): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_8()':
active_poller.cpp:(.text+0x3c8a): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x3f20): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x3fb0): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_12()':
active_poller.cpp:(.text+0x4808): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_16()':
active_poller.cpp:(.text+0x4b4f): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_32()':
active_poller.cpp:(.text+0x5134): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_37()':
active_poller.cpp:(.text+0x55cf): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x5974): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_39()':
active_poller.cpp:(.text+0x5a81): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x5efd): undefined reference to `zmq_poller_remove'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_41()':
active_poller.cpp:(.text+0x60c2): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_47()':
active_poller.cpp:(.text+0x6425): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x6600): undefined reference to `zmq_poller_modify'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_51()':
active_poller.cpp:(.text+0x6751): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x6b86): undefined reference to `zmq_poller_modify'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_53()':
active_poller.cpp:(.text+0x6f6d): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_55()':
active_poller.cpp:(.text+0x75c6): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_59()':
active_poller.cpp:(.text+0x7e86): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x7fd0): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x8060): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_63()':
active_poller.cpp:(.text+0x890b): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_14()':
active_poller.cpp:(.text+0x92fa): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x9501): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_34()':
active_poller.cpp:(.text+0x98e7): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x9dfc): undefined reference to `zmq_poller_remove'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0x9fd0): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_65()':
active_poller.cpp:(.text+0xa6fd): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0xa7a5): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_10()':
active_poller.cpp:(.text+0xb43a): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0xb603): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_30()':
active_poller.cpp:(.text+0xb79a): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0xb909): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0xb9a5): undefined reference to `zmq_poller_remove'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_28()':
active_poller.cpp:(.text+0xbb2a): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0xbc99): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0xbd35): undefined reference to `zmq_poller_remove'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_49()':
active_poller.cpp:(.text+0xbeba): undefined reference to `zmq_poller_new'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0xc083): undefined reference to `zmq_poller_add'
~/.linuxbrew/bin/ld: active_poller.cpp:(.text+0xc155): undefined reference to `zmq_poller_modify'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_45() [clone .cold]':
active_poller.cpp:(.text.unlikely+0x4c6): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_43() [clone .cold]':
active_poller.cpp:(.text.unlikely+0x622): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_0() [clone .cold]':
active_poller.cpp:(.text.unlikely+0x6b5): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_2() [clone .cold]':
active_poller.cpp:(.text.unlikely+0x7cf): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_4() [clone .cold]':
active_poller.cpp:(.text.unlikely+0x978): undefined reference to `zmq_poller_destroy'
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o:active_poller.cpp:(.text.unlikely+0xa32): more undefined references to `zmq_poller_destroy' follow
~/.linuxbrew/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `zmq::active_poller_t::wait(std::chrono::duration<long, std::ratio<1l, 1000l> >)':
active_poller.cpp:(.text._ZN3zmq15active_poller_t4waitENSt6chrono8durationIlSt5ratioILl1ELl1000EEEE[_ZN3zmq15active_poller_t4waitENSt6chrono8durationIlSt5ratioILl1ELl1000EEEE]+0x30): undefined reference to `zmq_poller_wait_all'
collect2: error: ld returned 1 exit status
make[2]: *** [tests/CMakeFiles/unit_tests.dir/build.make:294: tests/unit_tests] Error 1
make[2]: Leaving directory '....../cppzmq/build'
make[1]: *** [CMakeFiles/Makefile2:675: tests/CMakeFiles/unit_tests.dir/all] Error 2
make[1]: Leaving directory '....../cppzmq/build'
make: *** [Makefile:149: all] Error 2
Any more suggestions?
You need to link to libzmq.
@gummif
Now, I explicitly linked libzmq -l/usr/lib/x86_64-linux-gnu/libzmq.so
, which comes from Ubuntu 20.04 default repository. unit_tests is still buggy ...
[ 7%] Linking CXX executable unit_tests
cd ....../cppzmq/build/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/unit_tests.dir/link.txt --verbose=1
/usr/local/bin/c++ -std=c++14 -l/usr/lib/x86_64-linux-gnu/libzmq.so -O3 -DNDEBUG CMakeFiles/unit_tests.dir/buffer.cpp.o CMakeFiles/unit_tests.dir/message.cpp.o CMakeFiles/unit_tests.dir/context.cpp.o CMakeFiles/unit_tests.dir/socket.cpp.o CMakeFiles/unit_tests.dir/socket_ref.cpp.o CMakeFiles/unit_tests.dir/poller.cpp.o CMakeFiles/unit_tests.dir/active_poller.cpp.o CMakeFiles/unit_tests.dir/multipart.cpp.o CMakeFiles/unit_tests.dir/recv_multipart.cpp.o CMakeFiles/unit_tests.dir/send_multipart.cpp.o CMakeFiles/unit_tests.dir/codec_multipart.cpp.o CMakeFiles/unit_tests.dir/monitor.cpp.o CMakeFiles/unit_tests.dir/utilities.cpp.o -o unit_tests /usr/local/lib/libCatch2.a -lpthread /usr/lib/x86_64-linux-gnu/libzmq.so
/usr/bin/ld: cannot find -l/usr/lib/x86_64-linux-gnu/libzmq.so
collect2: error: ld returned 1 exit status
make[2]: *** [tests/CMakeFiles/unit_tests.dir/build.make:294: tests/unit_tests] Error 1
make[2]: Leaving directory '....../cppzmq/build'
make[1]: *** [CMakeFiles/Makefile2:675: tests/CMakeFiles/unit_tests.dir/all] Error 2
make[1]: Leaving directory '....../cppzmq/build'
make: *** [Makefile:149: all] Error 2
However, I can see clearly, /usr/lib/x86_64-linux-gnu/libzmq.so
exists:
➜ build git:(master) ✗ ll /usr/lib/x86_64-linux-gnu/libzmq.so
lrwxrwxrwx 1 root root 15 Apr 20 2020 /usr/lib/x86_64-linux-gnu/libzmq.so -> libzmq.so.5.2.2
Looks like an extra /usr/lib/x86_64-linux-gnu/libzmq.so at the end. The -l/usr/lib/x86_64-linux-gnu/libzmq.so part should come after all .o files.
@gummif
Actually, cmake has already found libzmq. I now removed my explicit -l/usr/lib/x86_64-linux-gnu/libzmq.so
, and /usr/lib/x86_64-linux-gnu/libzmq.so
is still there at the end. However, still failed.
[100%] Linking CXX executable unit_tests
cd ....../cppzmq/build/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/unit_tests.dir/link.txt --verbose=1
/usr/local/bin/c++ -std=c++14 -O3 -DNDEBUG CMakeFiles/unit_tests.dir/buffer.cpp.o CMakeFiles/unit_tests.dir/message.cpp.o CMakeFiles/unit_tests.dir/context.cpp.o CMakeFiles/unit_tests.dir/socket.cpp.o CMakeFiles/unit_tests.dir/socket_ref.cpp.o CMakeFiles/unit_tests.dir/poller.cpp.o CMakeFiles/unit_tests.dir/active_poller.cpp.o CMakeFiles/unit_tests.dir/multipart.cpp.o CMakeFiles/unit_tests.dir/recv_multipart.cpp.o CMakeFiles/unit_tests.dir/send_multipart.cpp.o CMakeFiles/unit_tests.dir/codec_multipart.cpp.o CMakeFiles/unit_tests.dir/monitor.cpp.o CMakeFiles/unit_tests.dir/utilities.cpp.o -o unit_tests /usr/local/lib/libCatch2.a -lpthread /usr/lib/x86_64-linux-gnu/libzmq.so
/usr/bin/ld: /lib/x86_64-linux-gnu/crt1.o: in function `_start':
(.text+0x24): undefined reference to `main'
/usr/bin/ld: CMakeFiles/unit_tests.dir/message.cpp.o: in function `CATCH2_INTERNAL_TEST_41()':
message.cpp:(.text+0x1dc5): undefined reference to `zmq_msg_set_routing_id'
/usr/bin/ld: message.cpp:(.text+0x1e30): undefined reference to `zmq_msg_routing_id'
/usr/bin/ld: CMakeFiles/unit_tests.dir/message.cpp.o: in function `CATCH2_INTERNAL_TEST_43()':
message.cpp:(.text+0x24cb): undefined reference to `zmq_msg_set_group'
/usr/bin/ld: message.cpp:(.text+0x2539): undefined reference to `zmq_msg_group'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_2()':
poller.cpp:(.text+0x6): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x1e): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_4()':
poller.cpp:(.text+0x36): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x4e): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_8()':
poller.cpp:(.text+0x67): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x78): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x93): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: poller.cpp:(.text+0xa2): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_6()':
poller.cpp:(.text+0xc7): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0xd8): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0xf0): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: poller.cpp:(.text+0xff): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_10()':
poller.cpp:(.text+0x144): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x162): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x179): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_12()':
poller.cpp:(.text+0x1f4): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x212): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x21f): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x237): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: poller.cpp:(.text+0x246): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_32()':
poller.cpp:(.text+0x695): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x736): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x778): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_20()':
poller.cpp:(.text+0x82e): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x853): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x8d4): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x90e): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_18()':
poller.cpp:(.text+0x9cf): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0xa4c): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0xa8a): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_22()':
poller.cpp:(.text+0xb0c): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0xb7b): undefined reference to `zmq_poller_wait_all'
/usr/bin/ld: poller.cpp:(.text+0xbb5): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_42()':
poller.cpp:(.text+0xc3f): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0xcab): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0xd3a): undefined reference to `zmq_poller_modify'
/usr/bin/ld: poller.cpp:(.text+0xd78): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_40()':
poller.cpp:(.text+0xe4b): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0xeb7): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0xf57): undefined reference to `zmq_poller_modify'
/usr/bin/ld: poller.cpp:(.text+0xf95): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_38()':
poller.cpp:(.text+0x106f): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x10e9): undefined reference to `zmq_poller_modify'
/usr/bin/ld: poller.cpp:(.text+0x1127): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_36()':
poller.cpp:(.text+0x11df): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x125a): undefined reference to `zmq_poller_modify'
/usr/bin/ld: poller.cpp:(.text+0x1298): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_26()':
poller.cpp:(.text+0x134e): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x1370): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x13d4): undefined reference to `zmq_poller_remove'
/usr/bin/ld: poller.cpp:(.text+0x140e): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_24()':
poller.cpp:(.text+0x14bf): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x1535): undefined reference to `zmq_poller_remove'
/usr/bin/ld: poller.cpp:(.text+0x1573): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_16()':
poller.cpp:(.text+0x162f): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x169d): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x16db): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_28()':
poller.cpp:(.text+0x177e): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x17af): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x1813): undefined reference to `zmq_poller_remove'
/usr/bin/ld: poller.cpp:(.text+0x184d): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_14()':
poller.cpp:(.text+0x1b7f): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x1beb): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x1c29): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_34()':
poller.cpp:(.text+0x1cda): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x1d50): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x1ea1): undefined reference to `zmq_poller_remove'
/usr/bin/ld: poller.cpp:(.text+0x1f04): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: poller.cpp:(.text+0x1f56): undefined reference to `zmq_poller_remove'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_30()':
poller.cpp:(.text+0x20ba): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x2172): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x2212): undefined reference to `zmq_poller_wait_all'
/usr/bin/ld: poller.cpp:(.text+0x24a5): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_44()':
poller.cpp:(.text+0x2601): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x267f): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x2824): undefined reference to `zmq_poller_wait_all'
/usr/bin/ld: poller.cpp:(.text+0x2a25): undefined reference to `zmq_poller_modify'
/usr/bin/ld: poller.cpp:(.text+0x2ac2): undefined reference to `zmq_poller_wait_all'
/usr/bin/ld: poller.cpp:(.text+0x2c61): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_50()':
poller.cpp:(.text+0x2ed9): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x2f54): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x2f8a): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x2fa0): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: poller.cpp:(.text+0x3048): undefined reference to `zmq_poller_wait_all'
/usr/bin/ld: poller.cpp:(.text+0x30e7): undefined reference to `zmq_poller_wait_all'
/usr/bin/ld: poller.cpp:(.text+0x3198): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_48()':
poller.cpp:(.text+0x33e9): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x3464): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x353d): undefined reference to `zmq_poller_wait_all'
/usr/bin/ld: poller.cpp:(.text+0x35dc): undefined reference to `zmq_poller_wait_all'
/usr/bin/ld: poller.cpp:(.text+0x368d): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_46()':
poller.cpp:(.text+0x37fd): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x3878): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x3a1b): undefined reference to `zmq_poller_wait_all'
/usr/bin/ld: poller.cpp:(.text+0x3acc): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_52()':
poller.cpp:(.text+0x3f2e): undefined reference to `zmq_poller_new'
/usr/bin/ld: poller.cpp:(.text+0x3fbe): undefined reference to `zmq_poller_add'
/usr/bin/ld: poller.cpp:(.text+0x4361): undefined reference to `zmq_poller_wait_all'
/usr/bin/ld: poller.cpp:(.text+0x4412): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_8() [clone .cold]':
poller.cpp:(.text.unlikely+0x119): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_6() [clone .cold]':
poller.cpp:(.text.unlikely+0x18f): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_10() [clone .cold]':
poller.cpp:(.text.unlikely+0x1dc): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o: in function `CATCH2_INTERNAL_TEST_12() [clone .cold]':
poller.cpp:(.text.unlikely+0x2e1): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/poller.cpp.o:poller.cpp:(.text.unlikely+0x524): more undefined references to `zmq_poller_destroy' follow
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_65()::{lambda(zmq::event_flags)#1}::operator()(zmq::event_flags) const':
active_poller.cpp:(.text+0xa04): undefined reference to `zmq_poller_remove'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_45()':
active_poller.cpp:(.text+0xb7a): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0xc52): undefined reference to `zmq_poller_modify'
/usr/bin/ld: active_poller.cpp:(.text+0xeea): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_43()':
active_poller.cpp:(.text+0xfda): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0x10b3): undefined reference to `zmq_poller_modify'
/usr/bin/ld: active_poller.cpp:(.text+0x134a): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_0()':
active_poller.cpp:(.text+0x140a): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0x1774): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_2()':
active_poller.cpp:(.text+0x17e6): undefined reference to `zmq_poller_new'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_4()':
active_poller.cpp:(.text+0x1dac): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0x1ef6): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0x206c): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_24()':
active_poller.cpp:(.text+0x2d4e): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0x2dc2): undefined reference to `zmq_poller_remove'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_20()':
active_poller.cpp:(.text+0x2f3c): undefined reference to `zmq_poller_new'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `zmq::active_poller_t::add(zmq::socket_ref, zmq::event_flags, std::function<void (zmq::event_flags)>) [clone .constprop.0]':
active_poller.cpp:(.text+0x330a): undefined reference to `zmq_poller_add'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_6()':
active_poller.cpp:(.text+0x33e6): undefined reference to `zmq_poller_new'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_8()':
active_poller.cpp:(.text+0x3c8a): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0x3f20): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0x3fb0): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_12()':
active_poller.cpp:(.text+0x4808): undefined reference to `zmq_poller_new'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_16()':
active_poller.cpp:(.text+0x4b4f): undefined reference to `zmq_poller_new'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_32()':
active_poller.cpp:(.text+0x5134): undefined reference to `zmq_poller_new'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_37()':
active_poller.cpp:(.text+0x55cf): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0x5974): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_39()':
active_poller.cpp:(.text+0x5a81): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0x5efd): undefined reference to `zmq_poller_remove'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_41()':
active_poller.cpp:(.text+0x60c2): undefined reference to `zmq_poller_new'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_47()':
active_poller.cpp:(.text+0x6425): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0x6600): undefined reference to `zmq_poller_modify'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_51()':
active_poller.cpp:(.text+0x6751): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0x6b86): undefined reference to `zmq_poller_modify'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_53()':
active_poller.cpp:(.text+0x6f6d): undefined reference to `zmq_poller_new'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_55()':
active_poller.cpp:(.text+0x75c6): undefined reference to `zmq_poller_new'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_59()':
active_poller.cpp:(.text+0x7e86): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0x7fd0): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0x8060): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_63()':
active_poller.cpp:(.text+0x890b): undefined reference to `zmq_poller_new'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_14()':
active_poller.cpp:(.text+0x92fa): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0x9501): undefined reference to `zmq_poller_add'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_34()':
active_poller.cpp:(.text+0x98e7): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0x9dfc): undefined reference to `zmq_poller_remove'
/usr/bin/ld: active_poller.cpp:(.text+0x9fd0): undefined reference to `zmq_poller_add'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_65()':
active_poller.cpp:(.text+0xa6fd): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0xa7a5): undefined reference to `zmq_poller_add'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_10()':
active_poller.cpp:(.text+0xb43a): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0xb603): undefined reference to `zmq_poller_add'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_30()':
active_poller.cpp:(.text+0xb79a): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0xb909): undefined reference to `zmq_poller_add'
/usr/bin/ld: active_poller.cpp:(.text+0xb9a5): undefined reference to `zmq_poller_remove'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_28()':
active_poller.cpp:(.text+0xbb2a): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0xbc99): undefined reference to `zmq_poller_add'
/usr/bin/ld: active_poller.cpp:(.text+0xbd35): undefined reference to `zmq_poller_remove'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_49()':
active_poller.cpp:(.text+0xbeba): undefined reference to `zmq_poller_new'
/usr/bin/ld: active_poller.cpp:(.text+0xc083): undefined reference to `zmq_poller_add'
/usr/bin/ld: active_poller.cpp:(.text+0xc155): undefined reference to `zmq_poller_modify'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_45() [clone .cold]':
active_poller.cpp:(.text.unlikely+0x4c6): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_43() [clone .cold]':
active_poller.cpp:(.text.unlikely+0x622): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_0() [clone .cold]':
active_poller.cpp:(.text.unlikely+0x6b5): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_2() [clone .cold]':
active_poller.cpp:(.text.unlikely+0x7cf): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `CATCH2_INTERNAL_TEST_4() [clone .cold]':
active_poller.cpp:(.text.unlikely+0x978): undefined reference to `zmq_poller_destroy'
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o:active_poller.cpp:(.text.unlikely+0xa32): more undefined references to `zmq_poller_destroy' follow
/usr/bin/ld: CMakeFiles/unit_tests.dir/active_poller.cpp.o: in function `zmq::active_poller_t::wait(std::chrono::duration<long, std::ratio<1l, 1000l> >)':
active_poller.cpp:(.text._ZN3zmq15active_poller_t4waitENSt6chrono8durationIlSt5ratioILl1ELl1000EEEE[_ZN3zmq15active_poller_t4waitENSt6chrono8durationIlSt5ratioILl1ELl1000EEEE]+0x30): undefined reference to `zmq_poller_wait_all'
collect2: error: ld returned 1 exit status
make[2]: *** [tests/CMakeFiles/unit_tests.dir/build.make:294: tests/unit_tests] Error 1
make[2]: Leaving directory '....../cppzmq/build'
make[1]: *** [CMakeFiles/Makefile2:675: tests/CMakeFiles/unit_tests.dir/all] Error 2
make[1]: Leaving directory '....../cppzmq/build'
make: *** [Makefile:149: all] Error 2
Should probably be -L/usr/lib/x86_64-linux-gnu -lzmq
@gummif
Nope... Looks like not this issue. At least, there should be NO point to modify CMakeLists.txt, right?
Ok, I see now what this is, libzmq is not built with draft features but cppzmq is built with drafts on, try turning off drafts in cppzmq or rebuild libzmq with drafts.
@gummif
Almost there... But still failed:
[100%] Linking CXX executable unit_tests
cd ....../cppzmq/build/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/unit_tests.dir/link.txt --verbose=1
/usr/local/bin/c++ -O3 -DNDEBUG CMakeFiles/unit_tests.dir/buffer.cpp.o CMakeFiles/unit_tests.dir/message.cpp.o CMakeFiles/unit_tests.dir/context.cpp.o CMakeFiles/unit_tests.dir/socket.cpp.o CMakeFiles/unit_tests.dir/socket_ref.cpp.o CMakeFiles/unit_tests.dir/poller.cpp.o CMakeFiles/unit_tests.dir/active_poller.cpp.o CMakeFiles/unit_tests.dir/multipart.cpp.o CMakeFiles/unit_tests.dir/recv_multipart.cpp.o CMakeFiles/unit_tests.dir/send_multipart.cpp.o CMakeFiles/unit_tests.dir/codec_multipart.cpp.o CMakeFiles/unit_tests.dir/monitor.cpp.o CMakeFiles/unit_tests.dir/utilities.cpp.o -o unit_tests /usr/local/lib/libCatch2.a -lpthread /usr/lib/x86_64-linux-gnu/libzmq.so
/usr/bin/ld: /lib/x86_64-linux-gnu/crt1.o: in function `_start':
(.text+0x24): undefined reference to `main'
collect2: error: ld returned 1 exit status
make[2]: *** [tests/CMakeFiles/unit_tests.dir/build.make:294: tests/unit_tests] Error 1
make[2]: Leaving directory '....../cppzmq/build'
make[1]: *** [CMakeFiles/Makefile2:675: tests/CMakeFiles/unit_tests.dir/all] Error 2
make[1]: Leaving directory '....../cppzmq/build'
make: *** [Makefile:149: all] Error 2
Catch should define a main function I think. Are you using the latest master?
@gummif Yup... I am using latest master of cppzmq, and catch2. But for libzmq, I just grabbed it directly from Ubuntu 20.04 repository.
The main function should be defined in https://github.com/zeromq/cppzmq/blob/bfaf8e884f79be91e3bc241af2a5dd31cff93cf6/tests/message.cpp since we are defining CATCH_CONFIG_MAIN there before including catch, that should work with catch v2.13.4.
@gummif
The thing is: should I define a main()
function by myself manually ?
Or, it should come with this file message.cpp
in the git repo?
It should just work if using the catch2 version expected. You could try commenting out find_package(Catch2 QUIET) in the tests CMakeLists.txt and rebuild and see if it downloads and builds catch2 locally, should work that way.
While building, I got the following ERROR messages:
It looks, line 25 of file
cppzmq/tests/context.cpp
, namely:CHECK(NULL != context.handle());
is buggy.Why? Can anybody help please?