ROS melodic cross compile for arm64/aarch64 architecture
- ros_comm
- common_msgs
- sensor_msgs
- image_transport
- vision_opencv
- tf
First. you have to install build dependencies. Start with cloning this repositiory
git clone https://github.com/teshanshanuka/ROS_crosscompile.git
cd ROS_crosscompile
./scripts/install_dependencies.sh
ROS depends on some libraries. You also have to cross compile these libraries.
The script cross compiles for aarch64 by using gcc-aarch64-linux-gnu
or g++-aarch64-linux-gnu
Basic ROS stuff depends on following packages
- bzip2 1.0.6
- console_bridge
- lz4
- poco 1.8.0.1
- tinyxml2
- python 2.7
- boost 1.65.1
- opencv 3.2.0
- eigen 3.3.4
- turbojpeg 1.5.2
- yamlcpp
- openssl
- log4cxx (not croscompiling)
- gpgrt (not croscompiling)
- gpgme (not croscompiling)
The script file build_dependencies.sh
will cross compile above libraries into
the path specified by INSTALL_PREFIX
export INSTALL_PREFIX="/desired/install/directory"
./scripts/build_dependencies.sh
export INSTALL_PREFIX="/desired/install/directory"
./scripts/xcompile.sh
- Needed replacing
/usr/aarch64-linux-gnu/lib/
with/usr/lib/aarch64-linux-gnu
on my target. Can it be avoided? - Crosscompile log4cxx - ROS nao guide which didn't work
- Crosscompile gpgme and gpg-error - Similar problem on gnupg mailing list