我想在我的 build.rs 文件中使用异步进程板条箱/包。
https://github.com/smol-rs/async-process.git.
在 crates.io 页面中,它说我可以将其放入我的项目的 Cargo.toml 中,如下所示:
[dependencies]
async-process = "2.0.1"
在我的 Rust 代码中为:
use async_process::Command;
我可以在我自己的包中使用它,但它破坏了 build.rs 的编译
error[E0432]: unresolved import `async_process`
--> build.rs:4:5
|
4 | use async_process::Command;
| ^^^^^^^^^^^^^ maybe a missing crate `async_process`?
|
= help: consider adding `extern crate async_process` to use the `async_process` crate
然后我尝试了:
extern crate async_process;
并收到此错误:
error[E0463]: can't find crate for `async_process`
--> build.rs:4:1
|
4 | extern crate async_process;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate
对 build.rs 是否有一些限制?
我想要这个的原因是我正在使用 build.rs 生成一个命令来运行一个相当长的进程,并希望将其标准输出记录到 async-process::Command 提供的文件中(或在运行时打印到控制台)有一种方法可以做到这一点,那就是我是否可以使用它。
在货物舱单中
[dependencies]
是二进制文件和库依赖项(运行时)。
当您在
async-process
脚本中使用 build.rs
时,您应该使用另一个部分:
[build-dependencies]
async-process = "2.0.1"
这些依赖项用于构建您的板条箱(编译时)
参考:https://doc.rust-lang.org/cargo/reference/specifying-dependency.html