使用发布配置文件自定义构建
在 Rust 中,发布配置文件是预定义和可定制的配置文件,其中 不同的配置允许程序员对 用于编译代码的各种选项。每个配置文件都独立于 其他人。
Cargo 有两个主要配置文件:Cargo 在您运行时使用的配置文件和 Cargo 在您运行时使用的配置文件。配置文件定义了良好的开发默认值,
并且该配置文件对于发布版本具有良好的默认值。dev
cargo build
release
cargo build --release
dev
release
这些配置文件名称可能从您的构建输出中熟悉:
$ cargo build
Finished dev [unoptimized + debuginfo] target(s) in 0.0s
$ cargo build --release
Finished release [optimized] target(s) in 0.0s
和 是编译器使用的这些不同的配置文件。dev
release
Cargo 对每个配置文件都有默认设置,当您没有应用时
在项目的 Cargo.toml 文件中显式添加了任何部分。
通过为要自定义的任何配置文件添加部分,您可以
覆盖默认设置的任何子集。例如,以下是默认的
和 配置文件的设置值:[profile.*]
[profile.*]
opt-level
dev
release
文件名: Cargo.toml
[profile.dev]
opt-level = 0
[profile.release]
opt-level = 3
该设置控制 Rust 将应用于的优化数量
您的代码,范围为 0 到 3。应用更多优化扩展
编译时间,因此,如果你正在进行开发并经常编译代码,
您需要更少的优化以更快地编译,即使生成的代码
运行速度较慢。因此,默认值为 。当您
准备好发布您的代码,最好花更多时间进行编译。您只会
在 release 模式下编译一次,但您将多次运行编译后的程序,
因此,发布模式会用更长的编译时间来换取运行速度更快的代码。那是
为什么配置文件的默认值为 .opt-level
opt-level
dev
0
opt-level
release
3
您可以通过在 Cargo.toml 中为其添加不同的值来覆盖默认设置。例如,如果我们想在 development 配置文件中,我们可以将这两行代码添加到项目的 Cargo.toml 文件中:
文件名: Cargo.toml
[profile.dev]
opt-level = 1
此代码将覆盖 .现在,当我们运行 时,
Cargo 将使用配置文件的默认值以及我们对 .因为我们设置为 ,所以 Cargo 将应用更多
优化,但不如发布版本中的优化那么多。0
cargo build
dev
opt-level
opt-level
1
有关每个配置文件的配置选项和默认值的完整列表,请参阅 Cargo 的文档。
本文档由官方文档翻译而来,如有差异请以官方英文文档(https://doc.rust-lang.org/)为准