gpt4 book ai didi

rust - 如果 "cargo build"比直接运行 rustc 慢,我为什么要使用 Cargo?

转载 作者:行者123 更新时间:2023-11-29 08:21:44 26 4
gpt4 key购买 nike

我创建了一个简单的 hello world 程序:

fn main() {
println!("Hello, world");
}

当使用 rustccargo build 编译代码时,cargo 命令显得较慢。 cargo build 需要 1.6srustc 需要 1s。请参阅屏幕截图右侧的时间戳。

这是为什么?为什么我还要使用 cargo?

最佳答案

作为Pavel Strakhov said

Cargo is not a compiler, it's a package manager. It runs rustc and does some extra work (e.g. resolves dependencies), so it can't be faster than bare rustc.

您可以通过运行 cargo build --verbose 亲眼看到这一点,它会输出 cargo 运行的 rustc 命令:

$ cargo build --verbose
Compiling hw v0.1.0 (file:///private/tmp/hw)
Running `rustc --crate-name hw src/main.rs --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=3c693c67d55ff970 -C extra-filename=-3c693c67d55ff970 --out-dir /private/tmp/hw/target/debug/deps -L dependency=/private/tmp/hw/target/debug/deps`
Finished dev [unoptimized + debuginfo] target(s) in 0.30 secs

Why should I still use cargo

上面的输出显示了一个原因:查看所有传递给 rustc 的参数。你知道他们每个人的作用吗?你知道吗? Cargo 抽象出一些细节,让您专注于代码。

Cargo 还不仅仅是调用编译器。对大多数人来说最大的好处是它manages your dependencies based on versions并允许 publishing your own crates as well .它还允许 build scripts在你的主要编译之前运行。它有简单的方法 running your tests和例子。

更有用的是,Cargo 执行检查以查看是否应该重建:

$ time rustc src/main.rs
0:00.21
$ time rustc src/main.rs
0:00.22

$ time cargo build
0:00.41
$ time cargo build
0:00.09 # Much better!

关于rust - 如果 "cargo build"比直接运行 rustc 慢,我为什么要使用 Cargo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44483749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com