Перейти к основному содержимому

Кросс-компиляция

Short Names

DCR поддерживает короткие имена платформ, которые автоматически раскрываются в полные triples:

Short NameFull Triple
linuxx86_64-unknown-linux-gnu
macosx86_64-apple-darwin
windowsx86_64-pc-windows-msvc
linux-arm64aarch64-unknown-linux-gnu
macos-arm64aarch64-apple-darwin
windows-arm64aarch64-pc-windows-msvc
dcr build --target windows

Full Triples

dcr build --target aarch64-unknown-linux-gnu
dcr build --target x86_64-pc-windows-gnu
dcr build --target armv7-unknown-linux-gnueabihf

clang --target

При использовании clang DCR автоматически inject-ит --target=<triple> в CFLAGS/CXXFLAGS.

[build]
compiler = "clang"
target = "aarch64-unknown-linux-gnu"
# Авто: cflags = ["--target=aarch64-unknown-linux-gnu"]

Bare-Metal

Для none/elf/eabi/bare-metal target-ов отключаются DCR default флаги (нет -I системных путей, нет -l libc).

dcr build --target aarch64-none-elf

Типы: none, *-elf*, *eabi*, *baremetal*.

Target Directory

Артефакты кладутся в:

target/<triple>/<profile>/

Пример:

target/aarch64-unknown-linux-gnu/debug/my-app