Docker containers with pre-built cross-compiler toolchains.
05nelsonm/build-env.{platform}.{arch}:{tag}
e.g.
docker run \
--rm \
-u "$(id -u):$(id -g)" \
-v ./:/work \
-it 05nelsonm/build-env.linux-libc.aarch64:0.4.1 \
bashThe following environment variables are available for all containers.
BUILD_ENV- The root directory where all things not provided by package manager are installed.
JNI_H- The root directory where
jni.hheaders are installed. - Versions:
java6java8java11java17java21
- e.g.
CFLAGS+=" -I${JNI_H}/java6/include"
- The root directory where
CROSS_ROOT- The root directory where the cross-compiler toolchain is installed.
CROSS_BIN- The directory where the cross-compiler programs are installed.
- Is always on
PATH
CROSS_TRIPLE- e.g.
aarch64-unknown-linux-gnu - e.g.
aarch64-unknown-linux-musl - e.g.
aarch64-linux-android21 - e.g.
aarch64-apple-darwin24.4 - e.g.
x86_64-w64-mingw32
- e.g.
AR${CROSS_TRIPLE}-ar
AS${CROSS_TRIPLE}-as
CC${CROSS_TRIPLE}-{clang/gcc}- e.g.
aarch64-unknown-linux-gnu-gcc - e.g.
aarch64-unknown-linux-musl-gcc - e.g.
aarch64-linux-android21-clang - e.g.
aarch64-apple-darwin24.4-clang - e.g.
x86_64-w64-mingw32-gcc
CXX${CROSS_TRIPLE}-{clang++/g++}- e.g.
aarch64-unknown-linux-gnu-g++ - e.g.
aarch64-unknown-linux-musl-g++ - e.g.
aarch64-linux-android21-clang++ - e.g.
aarch64-apple-darwin24.4-clang++ - e.g.
x86_64-w64-mingw32-g++
LD${CROSS_TRIPLE}-ld
RANLIB${CROSS_TRIPLE}-ranlib
STRIP${CROSS_TRIPLE}-strip
Additional platform specific environment variables are provided. See:
All containers have a proper ${CROSS_TRIPLE}-pkg-config available to ensure
only .pc files from the toolchain are referenced, and not those from the system.
The WORKDIR is /work