Cargo rust 构建脚本 - 打印命令输出

cod*_*der 8 command build-script rust rust-cargo

我对 Rust 和 Cargo 很陌生,我正在尝试做一些非常简单的事情!

我有这样的东西(在 build.rs 中):

use std::process::Command;

fn main() {
    Command::new("echo 123");
}
Run Code Online (Sandbox Code Playgroud)

我想查看命令的输出echo 123。我想123打印到构建输出(这主要是为了调试我正在做的事情)并且不会成为最终项目的一部分。

我已经尝试过cargo build --verbose-这不起作用。

我无法从那里的帖子中推断出答案(以及其他一些喜欢的帖子):

我觉得这一定很简单 - 但我已经在网上搜索了几个小时但没有找到答案。

Luk*_*odt 4

只是构建一个CommandwithCommand::new还没有执行它。它只是启动一个构建器模式。要实际执行它,您必须使用方法spawnoutputstatus。例子:

Command::new("echo")
    .arg("123")
    .spawn()
    .expect("failed to spawn process");
Run Code Online (Sandbox Code Playgroud)

非常不幸的是,这不会产生警告。最近有人尝试将该#[must_use]属性添加到Command,这将使您的代码产生警告。该 PR 目前已关闭,但似乎最终会添加。