Docker images for cross-compiling C++ applications to multiple platforms from amd64/arm64 host architectures.
This project provides pre-built Docker images containing cross-compilation toolchains for building C++ binaries targeting Linux, Windows, and macOS platforms across various architectures. The images are designed to work seamlessly with Docker BuildKit's multi-platform build capabilities.
The project builds specialized Docker images for each target platform:
- Linux targets: Uses GCC cross-compilation toolchains for amd64, arm64, armv7, riscv64, 386, s390x, and ppc64le
- Windows targets: Uses llvm-mingw for amd64, 386, arm64, and armv7
- macOS targets: Uses OSXCross for amd64 and arm64
Each image includes:
- Cross-compilation toolchain
- CMake with pre-configured toolchain files
- Environment variables set for cross-compilation
- Build tools (ninja, cmake)
Use the images in your Dockerfile with Docker's TARGETPLATFORM variable:
FROM --platform=$BUILDPLATFORM ghcr.io/dseif0x/cross-cpp-$TARGETPLATFORM:latest AS buildThis automatically selects the correct cross-compiler image based on your target platform.
Images are published to ghcr.io/dseif0x/cross-cpp-<platform>:latest for the following platforms:
linux/amd64,linux/arm64,linux/arm/v7linux/riscv64,linux/386,linux/s390x,linux/ppc64lewindows/amd64,windows/386,windows/arm64,windows/arm/v7darwin/amd64,darwin/arm64
- example/ – builds a simple C++ binary for multiple platforms.
- example-linux-kernel/ – cross-compiles the Linux kernel for multiple architectures. The kernel source is shallow-cloned at build time and is not stored in this repository.
To build all cross-compiler images:
docker buildx bakeTo build specific targets:
docker buildx bake linux-amd64 windows-amd64 darwin-arm64See LICENSE file for details.