我正在尝试使用以下方法构建基于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。