无法验证生成的可执行文件是带有“cargo readobj”的 ARM 二进制文件:没有这样的子命令
Unable to verify that produced executable is an ARM binary with `cargo readobj`: no such subcommand
我正在学习嵌入式 Rust。我已经设置了环境,现在正在关注 Build It instructions.
当我通过 运行 命令
验证生成的可执行文件是 ARM 二进制文件时
cargo readobj --target thumbv7em-none-eabihf --bin led-roulette -- -file-headers
它产生一个错误:
error: no such subcommand: readobj
我也试过命令
cargo readelf -h target/thumbv7em-none-eabihf/debug/led-roulette
它产生错误:
error: no such subcommand: readelf
在运行这些命令之前,您必须安装工具described in chapter 3。
如果您已经这样做了,请确保您位于 src/05-led-roulette
目录中。
我们默认安装的cargo包没有提供readobj子命令,所以需要显式添加这个子命令:
cargo install cargo-binutils --vers 0.1.4
这里的大多数答案建议安装 cargo-binutils
的 0.1.4 版本来解决这个问题。虽然这可行,但推荐的方法是安装最新的稳定版本,然后安装 llvm-tools-preview
以提供所有缺少的命令:
$ cargo install cargo-binutils
$ rustup component add llvm-tools-preview
这在 cargo-binutils crate 中有记载。
我正在学习嵌入式 Rust。我已经设置了环境,现在正在关注 Build It instructions.
当我通过 运行 命令
验证生成的可执行文件是 ARM 二进制文件时cargo readobj --target thumbv7em-none-eabihf --bin led-roulette -- -file-headers
它产生一个错误:
error: no such subcommand: readobj
我也试过命令
cargo readelf -h target/thumbv7em-none-eabihf/debug/led-roulette
它产生错误:
error: no such subcommand: readelf
在运行这些命令之前,您必须安装工具described in chapter 3。
如果您已经这样做了,请确保您位于 src/05-led-roulette
目录中。
我们默认安装的cargo包没有提供readobj子命令,所以需要显式添加这个子命令:
cargo install cargo-binutils --vers 0.1.4
这里的大多数答案建议安装 cargo-binutils
的 0.1.4 版本来解决这个问题。虽然这可行,但推荐的方法是安装最新的稳定版本,然后安装 llvm-tools-preview
以提供所有缺少的命令:
$ cargo install cargo-binutils
$ rustup component add llvm-tools-preview
这在 cargo-binutils crate 中有记载。