Rust documentation告诉我们 cargo build
会在编译后创建一个二进制文件,我们可以使用 cargo run
来执行它。如果 cargo run
在执行 cargo build
命令后发现任何变化,它将再次编译代码。它还表示 cargo build --release
命令创建最终程序,它将运行得更快。
我的问题是,为什么当我执行 cargo build --release
时,它会编译代码,这很好。但是,当我执行 cargo run
时,它会再次编译代码,尽管此后我没有更改任何代码。它与 cargo build
正常工作,然后是 cargo run
,即使用前一个命令编译一次。
naufil@naufil-Inspiron-7559:~/Desktop/rust/20April/variables$ cargo build
Compiling variables v0.1.0 (/home/naufil/Desktop/rust/20April/variables)
Finished dev [unoptimized + debuginfo] target(s) in 0.35s
naufil@naufil-Inspiron-7559:~/Desktop/rust/20April/variables$ cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.02s
Running `target/debug/variables`
Hello, world! 6
naufil@naufil-Inspiron-7559:~/Desktop/rust/20April/variables$ cargo build --release
Compiling variables v0.1.0 (/home/naufil/Desktop/rust/20April/variables)
Finished release [optimized] target(s) in 0.34s
naufil@naufil-Inspiron-7559:~/Desktop/rust/20April/variables$ cargo run
Compiling variables v0.1.0 (/home/naufil/Desktop/rust/20April/variables)
Finished dev [unoptimized + debuginfo] target(s) in 0.23s
Running `target/debug/variables`
Hello, world! 6
最佳答案
cargo run
尝试运行项目的调试版本。请改用 cargo run --release
。 cargo build --release
后跟 cargo run --release
将无法编译再次。
Cargo 维护着两组几乎完全独立的构建工件:
- 调试版本,存储在
target/debug/
- 发布构建,存储在
target/release/
所有这些子命令都允许您指定要使用的配置文件(不一定是详尽的列表):
- 默认:调试(使用
--release
切换到 Release模式)cargo 构建
cargo 运行
cargo 测试
cargo 检查
- 默认:发布(使用
--debug
切换到 Debug模式)载货台
cargo 安装
关于compilation - 为什么 Rust 使用 `cargo build --release` 后跟 `cargo run` 再次编译我的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55770816/