CrossCompile a package for an Humble ARM64 board

asked 2023-02-21 10:56:14 -0500

GIellamo gravatar image

Hi all,

I'm trying to crosscompile a simple ros2 package that just links rclcpp. The host machine is a x86-64 machine ( with ros2 humble installed) and the target is a Jetson Nano.

I created the sysroot from a working filesystem; if I use the qemu way of crossbuilding everything works but it is not fast enough.

I use the aarch64-linux-gnu-g++ included in ubuntu, the sysroot and I wrote a simple cmake toolchain file (https://github.com/peppedxAlto/simple...).

Cross building with

colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_TOOLCHAIN_FILE=`pwd`/aarch64.cmake

a simplenode like in the tutorial https://docs.ros.org/en/humble/Tutori... everything is ok.

But as soon as I add rclcpp into the mix I get

CMake Warning at CMakeLists.txt:15 (add_executable):

Cannot generate a safe runtime search path for target my_node because files in some directories may conflict with libraries in implicit directories:

runtime library [libpython3.10.so] in /usr/lib/aarch64-linux-gnu may be hidden by files in: /home/giellamo/roots/usr/lib/aarch64-linux-gnu

Some of these libraries may not be found correctly.

-- Generating done

-- Build files have been written to: /home/giellamo/projects/rostest/build/my_package

gmake[2]: * No rule to make target '/usr/lib/aarch64-linux-gnu/libpython3.10.so', needed by 'my_node'. Stop.

You can find the whole example at

https://github.com/peppedxAlto/simple...

Has anyone ever fought this?

Thanks, Giuseppe

edit retag flag offensive close merge delete