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
切换到发布模式)
cargo build
cargo run
cargo test
cargo check
--debug
切换到调试模式)
cargo bench
cargo install