-
Notifications
You must be signed in to change notification settings - Fork 57
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
Build error on UWP #63
Comments
@quattrinili were you able to resolve this issue? I've got the same problem. |
Hey @quattrinili and @mcevoyandy Quick thought from my side -- have you used ROS2 on Windows before (and thus, have you installed all the nuget package dependencies necessary for the Desktop install?). I've noticed that if cmake can find them on the system, then the FastRTPS cmake script will not clone its own copies, and you'll end up pulling in the non-UWP libraries to the build which can cause build and/or runtime errors. Uninstall all ROS2 third party dependencies that the ROS2 installation instructions had to install (libasio, tinyxml, log4cxx, etc). The repos files (for UWP) are completely standalone, and the |
Oh and uninstall OpenSSL as well -- my memory is foggy but I believe if OpenSSL is not present, FastRTPS will not build with security enabled (and your build error is in something called "TCPAcceptorSecure") |
@quattrinili @mcevoyandy yes, @theseankelly is right, uninstall OpenSSL for now. The reason for this failing is that I'm updating our fork of Fast-RTPS to not build the security stuff if targeting UWP. |
I've disabled support for the security extensions in FastRTPS if building for UWP in ros2-dotnet/Fast-RTPS@40072bb @quattrinili @mcevoyandy could you try again with an updated copy of our fork of FastRTPS? Thanks! |
Thanks for the fast response! This enabled fastrtps to build properly :) Here's the steps I followed:
|
I forgot that I had OpenSSL and I uninstalled it. The error related to it disappeared. However, unfortunately, I am still having problems, this time with linking with a link with foonathan_memory. I am digging into it.
|
Ok, found the problem: it is in the foonathan/memory, which uses This allowed me to fully compile ros2_dotnet for UWP. I tried with a talker and a listener in a simple UWP app, and at least right now it is not crashing; though for some reasons, they are not able to communicate. I still get some DLLNotFoundException on rcl_dotnet_common. I will check a couple of other things. |
That's great! Fast-RTPS introduced |
Maybe it was working with a previous version of MSVC? I submitted the pull request upstream for foonathan memory, but I see that it fails with MSVC 14 (should be Visual Studio 2015). On my system, both VS 2017 and 2019 work. All these versions make it hard to ensure things work properly... :) |
There is an issue for the UWP build of ros2_dotnet. In particular, the error is on fastrtps and the problem seems to be related to perhaps some differences in libraries and non-compatibility with UWP as it gives some syntax errors:
e.g., error C2332: 'struct': missing tag name (compiling source file ros2-uwp\src\eProsima\Fast-RTPS\src\cpp\transport\TCPAcceptorSecure.cpp)
Some context for the compilation:
colcon build --merge-install --packages-ignore rmw_fastrtps_dynamic_cpp rcl_logging_log4cxx rcl_logging_spdlog ros2trace tracetools_launch tracetools_read tracetools_test tracetools_trace --cmake-args -A x64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0.17134 -DTHIRDPARTY=ON -DINSTALL_EXAMPLES=OFF -DBUILD_TESTING=OFF -DRCL_LOGGING_IMPLEMENTATION=rcl_logging_noop --event-handlers console_cohesion+
Note that the Desktop ros2_dotnet compiles fine. My sense is that the problem might be on the ASIO library, and I tried to get the uwp version with vcpkg .12.2-2, but still without success.
(Split from comments on issue #55)
The text was updated successfully, but these errors were encountered: