在我的 Cargo.toml 中,在 build.rs 中使用时找不到我可以在正在构建的包中使用的板条箱,我该如何解决此问题?

问题描述 投票:0回答:1

我想在我的 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 提供的文件中(或在运行时打印到控制台)有一种方法可以做到这一点,那就是我是否可以使用它。

rust rust-cargo
1个回答
1
投票

在货物舱单中

[dependencies]

是二进制文件和库依赖项(运行时)。

当您在

async-process
脚本中使用
build.rs
时,您应该使用另一个部分:

[build-dependencies]
async-process = "2.0.1"

这些依赖项用于构建您的板条箱(编译时)

参考:https://doc.rust-lang.org/cargo/reference/specifying-dependency.html

© www.soinside.com 2019 - 2024. All rights reserved.