Closed wolfv closed 3 years ago
iceoryx 1.0 doesn't run on Windows. We just build it in our CI to prevent breakages in the unfinished port. Recently #33 was finished and our master branch now has basic Windows support. I don't know if there are issues with dynamic linking. AFAIK we use static linking in our CI.
@dkroenke from the azure link it seems it was build for ROS. I thought iceoryx was disabled for Windows on ROS. Did I miss something?
Thanks for the reply! If I understand correctly, then iceoryx 0.7 did work? Or some previous version of cyclonedds?
I am trying again, removing iceoryx + cyclonedds from the build now. I think ideally this should be encoded in the package.xml metadata, maybe at the level of https://github.com/ros2/rmw_implementation/blob/master/rmw_implementation/package.xml
No, iceoryx did not work on Windows up until recently with master. It was always only building to catch regressions in the port. I'm not quite sure if we build DLLs on ROS for Windows or if there are also statically build. At least cyclonedds should not use iceoryx when built for Windows. I don't know it that is fully prevented or if just the switch to use iceoryx is set to false by default on Windows.
Thanks @elBoberido sorry for bothering you guys! I'll discuss with the ROS folks / cyclonedds folks then.
Since we promised to also support Windows for the next ROS2 release, I think we should keep this issue open until we know if the linker issues persists with our current master
@wolfv @elBoberido On ROS 2 iceoryx is compiled as static lib (*.lib files) like all the other libraries (see here) and on Linux as shared library. CycloneDDS enables the shared memory transport only on Linux/MacOS platforms.
Yes building iceoryx as dll would make sense, added that as a task to https://github.com/eclipse-iceoryx/iceoryx/issues/846
@dkroenke since it is build as static lib on ROS 2 and you added a task to the full Windows support issue, do you think we can close this now?
agreed --> closed
@dkroenke thanks! It's not quite true -- most libraries are dll's in ROS 2 (check the bin folder in the link you posted).
But anyways, we could patch our build scripts to force a static build of the iceoryx libs for now!
Cheers!
@wolfv You are right! I forgot that on Windows the dll files are mostly exported to bin
instead of lib
. I'm mostly running on Linux where it goes to lib
. Thanks for the hint.
Greetings from Berlin :wink:
Required information
Operating system: Windows 10
Compiler version: MSVC 2019
Observed result or behaviour: Unfortunately, building a shared library (dll) on Windows seems to fail for iceoryx_utils. Here is a log: https://dev.azure.com/robostack/ros_pipelines/_build/results?buildId=2146&view=logs&j=c37ce413-640d-54e1-a15a-6fd3f816233d&t=81694da9-5e46-5c3e-6be0-f0d56769eb52
The error is
Any chance someone else came across this? Has this already been patched?