Skip to content

Latest commit

 

History

History
67 lines (53 loc) · 1.64 KB

README.md

File metadata and controls

67 lines (53 loc) · 1.64 KB

ROS aarch64 crosscompiler

ROS melodic cross compile for arm64/aarch64 architecture

Crosscompiled ROS components

  • ros_comm
  • common_msgs
  • sensor_msgs
  • image_transport
  • vision_opencv
  • tf

Install build dependencies

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

Cross compile dependencies

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

Cross Compile ROS

export INSTALL_PREFIX="/desired/install/directory"
./scripts/xcompile.sh

TODO

  1. Needed replacing /usr/aarch64-linux-gnu/lib/ with /usr/lib/aarch64-linux-gnu on my target. Can it be avoided?
  2. Crosscompile log4cxx - ROS nao guide which didn't work
  3. Crosscompile gpgme and gpg-error - Similar problem on gnupg mailing list