Skip to content

Cross Compiling for Debian Based Linux

Daniel Imms edited this page Sep 14, 2017 · 8 revisions

To build for a target architecture different than the host (e.g. using x64 to build for ARM), you'll need to do the following:

One-Time Setup

  1. install prerequisites:

sudo apt-get install qemu qemu-user-static debootstrap gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf

  1. create a chroot/rootfs for the target architecture:

sudo qemu-debootstrap --arch=armhf --variant=minbase xenial rootfs

  1. install libx11-dev on the chroot/rootfs:

sudo chroot rootfs apt-get install -y libx11-dev

Build

  1. point to the target toolchain on the build host:

export CC=$(which arm-linux-gnueabihf-gcc)

export CXX="$(which arm-linux-gnueabihf-g++) -L$(pwd)/rootfs/usr/lib/arm-linux-gnueabihf/"

note the -L linker argument pointing to the absolute path of libx11 on the chroot/rootfs

  1. install prerequisites for the target architecture:

scripts/npm.sh install --arch=armhf

  1. create a .deb file for easy installation on the target device:
npm run gulp vscode-linux-arm-min
npm run gulp vscode-linux-arm-build-deb
Clone this wiki locally