Apologies if this is not the right place where to raise this topic or if it is a duplicate (I have done a search first), but I am stuck with a problem cross-compiling ROS and I was hoping to have some help here.
I am cross compiling ROS for aarch64 architecture so I can use it with few of my boards (including a Jetson Nano that I bought few weeks back).
I followed the DRIVE PX2 ROS CROSS COMPILATION (https://devtalk.nvidia.com/default/topic/1032206/faq/drive-px2-ros-cross-compilation/post/5251406/) guide step by step and everything worked fine, having the ros_comm variant working fine on my Jetson Nano as well as other aarch64 boards that I have (the very same build works on several boards).
Now, I am trying to build the Robot variant (which includes more packets and libraries) and I am able to build 111 out of 115 packets. However, it fails on the linking stage of the kdl_parser package. I have tweaked with the toolchain file but after several tries, I haven’t been able to make it work.
The output that I got is something like:
[100%] Linking CXX executable /home/javieralso/devel/boards/Jetson/ros_crosscompile/ros_catkin_barebones_ws/devel_isolated/kdl_parser/lib/kdl_parser/check_kdl_parser
/usr/lib/gcc-cross/aarch64-linux-gnu/8/…/…/…/…/aarch64-linux-gnu/bin/ld: warning: libclass_loader.so, needed by /home/javieralso/devel/boards/Jetson/ros_crosscompile/ros_catkin_barebones_ws/install_isolated/lib/liburdf.so, not found (try using -rpath or -rpath-link)
/usr/lib/gcc-cross/aarch64-linux-gnu/8/…/…/…/…/aarch64-linux-gnu/bin/ld: /home/javieralso/devel/boards/Jetson/ros_crosscompile/ros_catkin_barebones_ws/install_isolated/lib/liburdf.so: undefined reference to `class_loader::MultiLibraryClassLoader::loadLibrary(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)’
The linker is complaining that:
- It can find some libraries which are there
- Some symbols do not exist on the libraries, however I double checked with nm and the symbols are there.
Has anyone experienced something similar to this problem or might have a clue of where to look at? I suspect this might be a problem with the linking configuration, but unfortunately I am not very experienced with CMake.
Thank you very much in advance.