-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ROS2 release libraries for Windows: Failed to load shared library of rmw implementation #488
Comments
@nbbrooks Could you share what windows build you are on? Perhaps a screenshot from |
My Windows build is
Path is
ROS2 build
|
Same here, I haven't done the DLL unblocking neither check for dependencies though.
Path
ROS2 build
|
I will further test and issue a PR, but I found this issue over in ros2 On this machine I installed Eloquent Patch Release 1 and Win64 OpenSSL v1.0.2u Light and am no longer getting the rmw implementation error and the talker and demo listener nodes successfully communicate. |
Thanks for that @nbbrooks, sadly I still find the problem, these are steps I have tried
The errors and system info are shown below. For 3 and 4 I have the following errors in the local_setup
And the one about rmw
For 5, (after adding rmw_implementation) the error becomes
Windows build
Path
|
Hmmm, that is unfortunate. I still don't know exactly what is going on except that the 1.0.2u light x64 version must be installed a dependency the non-light version doesn't, and it does not get removed when uninstalling.
Some other notes:
I have not done this step
I also get this, but believe it is "normal" as I did not install Connext or OpenSlice. I'm not sure why it expects to find them by default, but that should get addressed. Edit: I did not confirm the OpenSSL version on this machine before uninstalling, it is possible it this machine originally had x64 v1.1.1d which could have been the issue. Unfortunately I do not have another machine to test if this was the issue. The same issue in the ros2 repo I found, the author discovered they had installed v1.1.0. I'm going to update the terminology in the install instructions to make it clear v1.0.2 is necessary. |
Added clarity that v1.0.2u should be installed Using a newer version may cause issues per ros2#488 From OpenSSL website: - "OpenSSL 1.1.0 and later are quite different from previous releases" - "Version 1.0.2 is no longer supported" - long term we will need to address why v1.1.0 results in the issue linked above
That is expected if you don't have OpenSplice or Connext installed. |
The way that I normally go about debugging these issues is with https://github.com/lucasg/Dependencies It will let you see if you are depending on a DLL that isn't currently in the path (either via path mis-configuration or it not being installed) |
Hi, thanks for testing this. I just tried removing OpenSSL 1.0.2u and installing the light version but it didn't help in my case. I also tried "dependencies.exe" with the listener.exe but I am probably doing it wrong since it only shows some windows' kernel dll's, though some of them seem to be missing. |
My hunch is that those come from a VC Redistributable? Did you do the choco install: Or perhaps @seanyen may have some insight. |
I also looked at using Dependencies but didn't get any useful information out of it (could have been user error though). I did have a conversation with @seanyen and @ooeygui about this as I was putting together this issue. Lou suggested trying loader snaps to find the dll loading failure, but I have not gotten around to testing that:
Side note: I was helping someone set up a ROS2 project on Windows the other day, and ran into issues with the Eigen cmake config file being found when building the workspace. In the end, I believe this was because they forgot to add CMake to the Path - we added it later, but after installation of all the chocolatey packages. The error was probably because either
|
I found out I had cmake tools for VS2017, so I removed them, VS2019 didn't have them though. I tried reinstalling all choco packages but the error still appears. I think I will have to remove everything and reinstall again. If I find any solution I will post it here. Thanks anyway! |
I don't think having VS cmake tools installed breaks things, but it can complicate figuring out why things don't work (such as if chocolatey's cmake isn't in path). When you re-install VS2019, make sure to de-select "C++ Cmake tools for Windows" when checking "Desktop development with C++". I have a PR to update the documentation pending. |
* Clarify OpenSSL version to install Added clarity that v1.0.2u should be installed Using a newer version may cause issues per #488 From OpenSSL website: - "OpenSSL 1.1.0 and later are quite different from previous releases" - "Version 1.0.2 is no longer supported" - long term we will need to address why v1.1.0 results in the issue linked above * Port OpenSSL changes to Dashing and Foxy Signed-off-by: Michael Carroll <[email protected]> Co-authored-by: Michael Carroll <[email protected]>
With #514 merged (Thanks @nbbrooks!) I think this issue might be wrapped up. We had recommended not using the CMake version installed with Visual Studio 2019 as the initial distribution of CMake with Visual Studio didn't actually include support for Visual Studio 2019. Although I expect that has been resolved. |
I'll go ahead and close this if a participant feels like more is required we can open a new issue or reopen this one. |
I had the same problem. I reinstalled a lot of stuff and did some stuff mentioned here. At the end, what fixed my problem was installing from ROS 2 Build Installation from aka.ms/ros, instead of Downloading ROS 2 |
* Clarify OpenSSL version to install Added clarity that v1.0.2u should be installed Using a newer version may cause issues per ros2/ros2_documentation#488 From OpenSSL website: - "OpenSSL 1.1.0 and later are quite different from previous releases" - "Version 1.0.2 is no longer supported" - long term we will need to address why v1.1.0 results in the issue linked above * Port OpenSSL changes to Dashing and Foxy Signed-off-by: Michael Carroll <[email protected]> Co-authored-by: Michael Carroll <[email protected]>
Hi, I found another solution for by By Installation OpenSSL. 1, Download and Install Win64 OpenSSL v1.1.1. Note: can find the MSI at bottom of the page Then try: Result:
|
OS: Windows 10 Home
When following the "Installing ROS 2 on Windows" instructions for Eloquent for ROS2 release libraries, trying to run ros commands (ex: ros2 run demo_nodes_py listener) results in the following error:
Note that I used the install directory in the tutorial - the C:\J path must be a backup location set from when the binary was built.
I was unable to fix this but tried a couple things:
I have seen this issue in many other places with no successful resolution (other than installing ROS2 from source) and wanted to put the issue here and confirm it is still present in Eloquent.
The text was updated successfully, but these errors were encountered: