0

有没有一种方法可以等效于cargo run但仅在源文件发生更改时才重新编译,例如make

. ├── Cargo.lock ├── Cargo.toml ├── input.txt ├── README.md └── src ├── dna.rs ├── dynamic.rs ├── lib.rs └── main.rs

编辑:添加tree输出。

4

2 回答 2

3

Cargo 默认执行此操作。

创建一个新项目:

$ cargo new --bin foo
$ cd foo/

运行:

$ cargo run
   Compiling foo v0.0.1 (file:///private/tmp/foo)
     Running `target/foo`
Hello, world!

再次运行它,不做任何更改:

$ cargo run
     Running `target/foo`
Hello, world!

并更新文件并再次运行它:

$ touch src/main.rs
$ cargo run
   Compiling foo v0.0.1 (file:///private/tmp/foo)
     Running `target/foo`
Hello, world!

Compiling foo...请注意在第二次运行中缺少。当文件被修改时(这里使用touch),它被重新编译。

对于它的价值,我正在使用cargo 0.0.1-pre-nightly (66849de 2015-03-10) (built 2015-03-11).

于 2015-03-14T18:23:24.340 回答
0

要回答你在标题中提出的问题,“货物有能力检测源变化吗?”,答案是肯定的,cargo watch。它是 的扩展cargo,因此您必须先下载并编译它,然后才能使用它。https://github.com/passcod/cargo-watch

当然,从您的详细问题来看,很明显这不是您要问的问题,但是看到标题并单击链接的其他人可能确实想要该问题的答案。

于 2015-06-30T20:12:01.150 回答