libzmq icon indicating copy to clipboard operation
libzmq copied to clipboard

zmq with pgm/epgm support

Open erblinium opened this issue 4 years ago • 7 comments

Issue description

Hi, I am having some problems trying to build libzmq with pgm support with cmake in windows 10. I have installed OpenPGM (v5.2.122) through the exe file found here: https://miru.hk/openpgm/ and building it from https://code.google.com/archive/p/openpgm/downloads. With the first installation I am getting errors during building of libzmq which can not find the correct .lib files of pgm (expects v141, installed are v110 & 100 & 90). In the second one, the building of OpenPGM it self fails as it could not find a "PATCH_EXECUTABLE" program.

Environment

  • libzmq version (commit hash if unreleased):

4.3.2

  • OS:

Windows 10, Visual Studio 15 2017 x64

What's the actual result? (include assertion message & call stack if applicable)

First build error: LINK : fatal error LNK1181: cannot open input file 'libpgm-v141-mt-5_2_122.lib'

Second build error in OpenPGM: 'PATCH_EXECUTABLE-NOTFOUND' is not recognized as an internal or external command

erblinium avatar Sep 27 '19 14:09 erblinium

it seems like you need to install "patch" (try this) maybe after patching windows will be able to find the lib. good luck!

leonardp avatar Nov 08 '19 09:11 leonardp

Hi, thanks for the tip! Forgot to mention this, however, it seems that ZMQ Windows version does not support PGM yet if you look into the supported platforms. Only Ubuntu 14.04.5 LTS (trusty) seem to have a stable release for now. So I don't know if its worth trying to install that "patch"... Do you have a working example (e.g radio dish) running with pgm on Windows?

erblinium avatar Nov 08 '19 09:11 erblinium

sorry i do not own any machines running windows. but have a look at this SO question: https://stackoverflow.com/q/6486890 as it appears from the first answer that it should be doable. also take a look at: https://github.com/zeromq/libzmq/blob/master/INSTALL if you haven't already.

EDIT: are you sure the precompiled versions here: https://zeromq.org/download/ do not have pgm and radio/dish already builtin?

leonardp avatar Nov 08 '19 09:11 leonardp

Ok, I will check these links out later and post my results here.

No I am nut sure, I can't find any documentation inside the precompiled versions regarding pgm support. If you look at the official readme in https://github.com/zeromq/libzmq in the remarks column you see which platforms support what features. However, I ran the radio/dish test in the precompiled version v4.3.2 and it passed the test with 2 warnings:

C:\projects\libzmq\tests\test_radio_dish.cpp:507:test_leave_unjoined_fails:PASS
C:\projects\libzmq\tests\test_radio_dish.cpp:508:test_join_too_long_fails:PASS
C:\projects\libzmq\tests\test_radio_dish.cpp:509:test_join_twice_fails:PASS
C:\projects\libzmq\tests\test_radio_dish.cpp:510:test_radio_bind_fails_ipv4:PASS
C:\projects\libzmq\tests\test_radio_dish.cpp:511:test_radio_bind_fails_ipv6:PASS
C:\projects\libzmq\tests\test_radio_dish.cpp:512:test_dish_connect_fails_ipv4:PASS
C:\projects\libzmq\tests\test_radio_dish.cpp:513:test_dish_connect_fails_ipv6:PASS
C:\projects\libzmq\tests\test_radio_dish.cpp:514:test_radio_dish_tcp_poll_ipv4:PASS
C:\projects\libzmq\tests\test_radio_dish.cpp:515:test_radio_dish_tcp_poll_ipv6:PASS
C:\projects\libzmq\tests\test_radio_dish.cpp:516:test_radio_dish_udp_ipv4:PASS
C:\projects\libzmq\tests\test_radio_dish.cpp:517:test_radio_dish_udp_ipv6:PASS
C:\projects\libzmq\tests\test_radio_dish.cpp:519:test_radio_dish_mcast_ipv4:PASS
C:\projects\libzmq\tests\test_radio_dish.cpp:464:test_radio_dish_no_loop_ipv4:IGNORE: ZMQ_MULTICAST_LOOP=false does not appear to work on Windows (TODO)
C:\projects\libzmq\tests\test_radio_dish.cpp:522:test_radio_dish_mcast_ipv6:PASS
C:\projects\libzmq\tests\test_radio_dish.cpp:464:test_radio_dish_no_loop_ipv6:IGNORE: ZMQ_MULTICAST_LOOP=false does not appear to work on Windows (TODO)

-----------------------
15 Tests 0 Failures 2 Ignored
OK

Seems like its working but not stable yet for windows.

erblinium avatar Nov 08 '19 11:11 erblinium

As it says, ZMQ_RADIO/ZMQ_DISH works, unless you zmq_setsockopt ZMQ_MULTICAST_LOOP to false/0.

I don't know if that's relevant for you? I am not sure if ZMQ_MULTICAST_LOOP can even be set to 0 for pgm on any platform, resp. if it has an effect on any platform.

sigiesec avatar Nov 08 '19 12:11 sigiesec

Hello, I know this is an old issue but I have found a way to compile libpgm on Windows 10 using CMAKE.

You can find the source code + the instructions for how to compile it yourself here.

EDIT: This library might better as it's an newer version and you don't have to go through as many loopholes

richardwei6 avatar Mar 03 '21 05:03 richardwei6

This issue has been automatically marked as stale because it has not had activity for 365 days. It will be closed if no further activity occurs within 56 days. Thank you for your contributions.

stale[bot] avatar Apr 16 '22 17:04 stale[bot]