Простая программа
// main.rs
//
fn main() {
println!("Hello World!");
}
Построен с целью armv7-unknown-linux-gnueabi и получает ошибку времени сборки
$rustc --target armv7-unknown-linux-gnueabi main.rs
error: linking with `cc` failed: exit status: 1
|
= note: "cc" "main.main.bb83c76b-cgu.0.rcgu.o" "main.main.bb83c76b-cgu.1.rcgu.o" "main.main.bb83c76b-cgu.2.rcgu.o" "main.main.bb83c76b-cgu.3.rcgu.o" "main.main.bb83c76b-cgu.4.rcgu.o" "main.main.bb83c76b-cgu.5.rcgu.o" "main.main.bb83c76b-cgu.6.rcgu.o" "main.main.bb83c76b-cgu.7.rcgu.o" "main.1nspxxkz83ziil5b.rcgu.o" "-Wl,--as-needed" "-L" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib" "-Wl,--start-group" "-Wl,-Bstatic" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libstd-f877b6743fad9ce0.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libpanic_unwind-ca23a35fd6776e95.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libminiz_oxide-9b2325ccfefdae49.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libadler-78c636d1cefe1f53.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libobject-cd2a15b9c0cd0912.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libmemchr-87348818413b65dc.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libaddr2line-28914e0ca2a7cabd.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libgimli-edb9d7f286e86f79.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libstd_detect-08665724c4ec2083.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/librustc_demangle-a0fbe62ad5846784.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libhashbrown-f989e60894fc6d57.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/librustc_std_workspace_alloc-17d6e1a134fbbef9.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libunwind-15bfe40785c93f7b.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libcfg_if-8452e19dfd17f32a.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/liblibc-ff6e3684a369debc.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/liballoc-dc146827e3238c67.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/librustc_std_workspace_core-7fa8d80aeaa09d86.rlib" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libcore-3ed097770b462522.rlib" "-Wl,--end-group" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libcompiler_builtins-97fd0602acb09555.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib" "-o" "main" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro,-znow" "-nodefaultlibs"
= note: /usr/bin/ld: main.main.bb83c76b-cgu.0.rcgu.o: Relocations in generic ELF (EM: 40)
/usr/bin/ld: main.main.bb83c76b-cgu.0.rcgu.o: Relocations in generic ELF (EM: 40)
/usr/bin/ld: main.main.bb83c76b-cgu.0.rcgu.o: Relocations in generic ELF (EM: 40)
/usr/bin/ld: main.main.bb83c76b-cgu.0.rcgu.o: Relocations in generic ELF (EM: 40)
main.main.bb83c76b-cgu.0.rcgu.o: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
error: aborting due to previous error
error: linker `armv7-unknown-linux-gnueabi-gcc` not found. где я могу получить это
По какой причине вы строите напрямую с rustc, а не с cargo? cargo как бы существует, чтобы упростить эти вопросы :)
$cargo build --release ``` Ошибка компиляции приложения v0.1.0 (/home/Documents/rust/example/app): компоновщик armv7-unknown-linux-gnueabi-gcc не найден | = примечание: нет такого файла или каталога (ошибка ОС 2) ошибка: не удалось скомпилировать app из-за предыдущей ошибки ```
#.cargo/config[build] target = "armv7-unknown-linux-gnueabi" [target.armv7-unknown-linux-gnueabi] rustflags = ["-C", "linker=armv7-unknown-linux-gnueabi-gcc"]$ rustup show Default host: x86_64-unknown-linux-gnu rustup home: /home/yhuang/.rustup installed toolchains -------------------- stable-x86_64-unknown-linux-gnu (default) 1.51-x86_64-unknown-linux-gnu installed targets for active toolchain -------------------------------------- armv7-unknown-linux-gnueabi armv7a-none-eabi x86_64-unknown-linux-gnu active toolchain ---------------- stable-x86_64-unknown-linux-gnu (default) rustc 1.59.0 (9d1b2106e 2022-02-23) 
похоже, что armv7-unknown-linux-gnueabi пока недоступен, поэтому нет armv7-unknown-linux-gnueabi-gcc, обратитесь к https://github.com/rust-lang/rust/issues/105406
Попробуйте совет из этого выпуска: github.com/rust-lang/rust/issues/28924 Похоже, вам может понадобиться вручную настроить компоновщик в файле cargo.toml.