DioxusLabs/dioxus · error
Binary format not supported
Error message
Binary format not supported
What it means
The CLI's linker stub hit a target binary format it cannot synthesize an object file for. Only Elf, Coff, MachO, and Wasm are handled; any other target_lexicon BinaryFormat falls through to this unimplemented arm while creating the placeholder object file.
Source
Thrown at packages/cli/src/cli/link.rs:208
// This creates an object file that satisfies rust's use of llvm-objcopy
//
// I'd rather we *not* do this and instead generate a truly linked file (and then delete it) but
// this at least lets us delay linking until the host compiler is ready.
//
// This is because our host compiler is a stateful server and not a stateless linker.
//
// todo(jon): do we use Triple::host or the target triple? I think I ran into issues
// using the target triple, hence the use of "host" but it might not even matter?
let triple = Triple::host();
let format = match triple.binary_format {
target_lexicon::BinaryFormat::Elf => object::BinaryFormat::Elf,
target_lexicon::BinaryFormat::Coff => object::BinaryFormat::Coff,
target_lexicon::BinaryFormat::Macho => object::BinaryFormat::MachO,
target_lexicon::BinaryFormat::Wasm => object::BinaryFormat::Wasm,
target_lexicon::BinaryFormat::Xcoff => object::BinaryFormat::Xcoff,
target_lexicon::BinaryFormat::Unknown => unimplemented!(),
_ => unimplemented!("Binary format not supported"),
};
let arch = match triple.architecture {
target_lexicon::Architecture::Wasm32 => object::Architecture::Wasm32,
target_lexicon::Architecture::Wasm64 => object::Architecture::Wasm64,
target_lexicon::Architecture::X86_64 => object::Architecture::X86_64,
target_lexicon::Architecture::Arm(_) => object::Architecture::Arm,
target_lexicon::Architecture::Aarch64(_) => object::Architecture::Aarch64,
target_lexicon::Architecture::LoongArch64 => object::Architecture::LoongArch64,
target_lexicon::Architecture::Unknown => object::Architecture::Unknown,
_ => unimplemented!("Architecture not supported"),
};
let endian = match triple.endianness() {
Ok(target_lexicon::Endianness::Little) => object::Endianness::Little,
Ok(target_lexicon::Endianness::Big) => object::Endianness::Big,
Err(_) => unimplemented!("Endianness not supported"),
};View on GitHub (pinned to 24f6a829df)
Solutions
- The binary format of the target is not supported by the dx linker. Link a supported format (Mach-O, ELF, or PE).
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at packages/cli/src/cli/link.rs:208 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of DioxusLabs/dioxus@24f6a829df (2026-08-23).
Data as JSON: /api/errors/0ca857c5e2273871.
Report an issue: GitHub.