#std #no-std #cargo-check #cli

no-std app cargo-no-std-check

检查软件包是否可以在不使用std的情况下构建

3个版本

0.1.3 2021年1月31日
0.1.2 2021年1月31日
0.1.1 2020年2月17日
0.1.0 2020年2月17日

#1013开发工具

MIT/Apache

13KB
159 代码行数

cargo no-std-check

CI Latest Version

cargo no-std-check 是 cargo check 的包装程序,确保你的库没有链接到 libstd

安装

cargo no-std-check 可以使用任何稳定的 Rust 版本构建,但其操作需要夜间编译器。

$ cargo install cargo-no-std-check

用法

在软件包上运行此命令以构建它的lib目标,而不访问 std。在最终库的依赖层次结构中尝试使用 std 将产生构建错误。

通过示例

$ cargo no-std-check --manifest-path nostd/Cargo.toml
    Creating #![no_std] sysroot
     Copying [============================================================] 154/154: done
     Sysroot x86_64-unknown-linux-gnu (/tmp/nostd_sysroot.YhFkabJ2tXeK)
    Finished dev [unoptimized + debuginfo] target(s) in 0.01s

失败示例

$ cargo no-std-check --manifest-path withstd/Cargo.toml
    Creating #![no_std] sysroot
     Copying [============================================================] 154/154: done
     Sysroot x86_64-unknown-linux-gnu (/tmp/nostd_sysroot.uYDnxo4ZNOLs)
    Checking withstd v0.1.0 (/crates/withstd)
error[E0463]: can't find crate for `std`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0463`.
error: could not compile `withstd`.

To learn more, run the command again with --verbose.

依赖项

~6–14MB
~156K SLoC