Я пытаюсь создать автономный двоичный файл на основе Rust, используя:
cargo --target=armv7-unknown-linux-gnueabihf --release
Каждый раз, когда я собираю двоичный файл для целевой системы, копирую и выполняю этот двоичный файл в целевой системе, он будет паниковать:
<binary>:error while loading shared libraries:
libstd-42431e74081a30a8.so:
cannot open shared object file: No such file or directory
Это означает, что он не может найти динамическую библиотеку.
Если динамические библиотеки копируются на внешний SSD и есть путь к ним, двоичный файл не будет паниковать при поиске библиотек.
Первоначально .cargo / config имел
rustflags = ["-C","target-feature=prefer-dynamic]
Я также пытался
rustflags = ["-C", "target-feature=+crt-static"]
Но двоичный файл все еще требует внешних динамических библиотек
Содержимое файла .cargo / config:
[target.armv7-unknown-linux-gnueabihf]
ar = "arm-dey-linux-gnueabi-gcc-ar"
linker = "gcc-sysroot"
[build]
rustflags = ["-C", "target-feature=+crt-static"]
Я ожидаю, что двоичный файл цели будет выполняться без зависимостей от динамических системных файлов .so или .rlib, поскольку у нас есть система ограничения пространства, где SSD может отсутствовать.