-
Notifications
You must be signed in to change notification settings - Fork 9
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
Crystal cross-compilation error #4
Comments
Based on the error message:
It would appear the issue is that the following lines are failing to find the tinyxml2 installation: tinyxml2_vendor/cmake/Modules/FindTinyXML2.cmake Lines 19 to 21 in 575ace5
Can you provide the platform you are compiling on and the version of TinyXML2 on your system? |
I am cross-compiling ROS2 for an ARM v7 board. On the board I have the following files:
|
I'm able to reproduce the error. One thing that tripped me up is that unlike our other vendor packages, tinyxml2_vendor has no provision for building and vendoring the target package so if tinyxml2 isn't found this package should probably fail to build with an error message. In a Linux system without tinyxml2 installed at all, reverting 460faf8 allows the tinyxm2_vendor package to build successfully but there's still no tinyxml2 installed on the system, so building fastrtps on top of this workspace fails with:
I'm not very practiced at cross-compilation with CMake and my reproduction of the issue is still native only. Does your target sysroot contain pkg-config or CMake configuration files for tinyxml2? If not, that may be why the vendor package isn't finding your libraries. Fast-RTPS is doing things closer to what we were doing previously and the ultimate fix may wind up being a synthesis of both. I think there's something here and I'll investigate further. |
So in classic "I have investigated further and now I am even more confused" fashion... I have investigated further and now I am even more confused. I have found some issues with the tinyxml2_vendor package. Prior to #3 the casing of Using version 0.4.0 of tinyxml2_vendor as a base in a container that doesn't have tinyxml2 installed here's the CMake output with two extra messages printed after
So due to that mismatch tinyxml2 isn't found but that's not treated as an error and the build proceeds. However checking TinyXML2_FOUND explicitly after the fact comes up as Changing the name of the find module file to @alsora when you say reverting to Bouncy (0.4.0) "works fine", what exactly are you testing? Can you share the CMake configuration output from both your Bouncy and Crystal builds? If you're using colcon it would be in the log file |
From @alsora's original error message, the vendor package is finding neither the library file nor the include directory it's being told to look for. |
Ok, I'm sorry, but I think that the behavior that I was seeing at the beginning was due to a mistake. What I have is the following. I'm trying to cross-compile the repositories contained in ros2.repos (both Bouncy and Crystal tags). What's interesting is that if, while compiling the ros2.repos Crystal tag, I revert this package to 0.4 the overall build of ros2.repos succeeds. |
Me either! Let's ask the maintainer of pluginlib... oh drat! Are you building without Fast-RTPS? It also requires tinyxml2 although because it's not a "ROS" package it doesn't depend on tinyxml2_vendor. Their build is capable of bundling tinyxml2 but I don't believe they do so by default anymore.
In my opinion this is actually the desired behavior. The package that finds tinyxml2 should fail if it can't do so. The purpose of these vendor packages is to guarantee that the vendored project is available from somewhere. |
Building pluginlib in a Crystal workspace without tinyxml2 and using tinyxml2_vendor from Bouncy workspace I get
If I try to build more than just pluginlib I also get errors building Fast-RTPS (as expected without tinyxml2 installed). |
I'm sorry, but for the next few days I will not be able to check again. I will repeat all the tests and give you some updates soon. |
🎄 No trouble. Happy Holidays! ⛄ |
@alsora any news on this front or should we close this one out? |
Sorry but I completely forgot about this. Moreover, the issue is not present anymore, so either it has been fixed with the commits in January or I was doing some mistakes... |
Hi,
I'm cross-compiling ROS2 Crystal and the build of this package fails.
Note that I have already built ROS2 Crystal from sources with no issues.
The error is:
The problem is due to the changes that you did on 11 December commit 460faf8
If I revert to the previous commit (i.e. Bouncy release tag) it works fine.
I don't exactly understand what's going on with this package, but if there are some additional information that you need for debugging, just let me know.
The text was updated successfully, but these errors were encountered: