-
Notifications
You must be signed in to change notification settings - Fork 280
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
Improve cross compilation situation #1144
Comments
There is a workaround for issues with paths: https://github.com/proot-me/proot provides "chroot" functionality with possibility of execution of both host and target binaries, see |
I was working on a list of cross compile fixes but then found this ticket. |
ROS1/catkin are EOL, nobody is going to work on this. |
fair enough |
As of now, ROS1 catkin packages cannot be smoothly cross compiled. It would be good to improve this situation for the following reasons:
ros/meta-ros
regarding ROS1. Currently, there are some patches applied, it would be good to incorporate these patches into catkin.Some notable issues I encountered when cross compiling the talker demo:
set(libraries "roscpp;pthread;/usr/lib/aarch64-linux-gnu/libboost_chrono.so.1.71.0;/usr/lib/aarch64-linux-gnu/libboost_filesystem.so.1.71.0;/usr/lib/aarch64-linux-gnu/libboost_system.so.1.71.0")
on line 119 ofopt/ros/noetic/share/roscpp/cmake/roscppConfig.cmake
.NO_CMAKE_FIND_ROOT_PATH
inopt/ros/noetic/share/roscpp/cmake/roscppConfig.cmake
. This causes cmake to use the host system libraries, which will not work, since these libraries are for a different target.For some inspiration of what can be done, please refer here:
https://github.com/ros/meta-ros/blob/295774bd20dbcb5c2e1312d10958dca2a85e9219/meta-ros1-melodic/recipes-bbappends/catkin/catkin/0002-allow-proper-cross-compilation-with-catkin.patch
These patches are applied before building ros1 packages, which results in built packages which are able to cooperate during cross compilation.
My own patches are located here (those can be applied to installed deb packages in a sysroot):
https://github.com/windelbouwman/sysroot-creator/blob/main/patch-ros1-stuff.sh
In my opinion it makes sense to improve the ROS1 cross compilation situation. In ROS2, it almost works out of the box, and this is great (only one minor issue left with fastRTPS). Is ROS1 still maintained, or is it abandoned in favor or ROS2? In other words, does it make sense to try a pull request for this issue?
The text was updated successfully, but these errors were encountered: