--- sidebar_label: Cross-compilation --- # Cross-Compilation ## Short Names DCR supports short platform names: | Short Name | Full Triple | | ---------- | -------------------------- | | `linux` | `x86_64-unknown-linux-gnu` | | `macos` | `x86_64-apple-darwin` | | `windows` | `x86_64-pc-windows-msvc` | ```bash dcr build --target windows ``` ## Full Triples ```bash dcr build --target aarch64-unknown-linux-gnu dcr build --target x86_64-pc-windows-gnu # mingw dcr build --target armv7-unknown-linux-gnueabihf ``` ## clang --target When using clang, DCR injects `--target=\` into CFLAGS. ```toml [build] compiler = "clang" target = "aarch64-unknown-linux-gnu" # Auto: cflags += ["--target=aarch64-unknown-linux-gnu"] ``` ## Bare-Metal / Freestanding For targets containing `none`, `-elf`, `eabi`, or `baremetal`, DCR automatically: 1. **Disables default flags** — no system include paths, no `-l` libc 2. **Injects `-ffreestanding`** at compile time and `-nostdlib -static` at link time You can also enable freestanding mode explicitly: ```toml [build] freestanding = true ``` ```bash dcr build --target aarch64-none-elf ``` ## Target Directory On Linux with explicit target: ``` target/// ``` On macOS/Windows or without target: ``` target// ```