使用发布配置文件自定义构建

在 Rust 中,发布配置文件是预定义和可定制的配置文件,其中 不同的配置允许程序员对 用于编译代码的各种选项。每个配置文件都独立于 其他人。

Cargo 有两个主要配置文件:Cargo 在您运行时使用的配置文件和 Cargo 在您运行时使用的配置文件。配置文件定义了良好的开发默认值, 并且该配置文件对于发布版本具有良好的默认值。devcargo buildreleasecargo build --releasedevrelease

这些配置文件名称可能从您的构建输出中熟悉:

$ cargo build
    Finished dev [unoptimized + debuginfo] target(s) in 0.0s
$ cargo build --release
    Finished release [optimized] target(s) in 0.0s

和 是编译器使用的这些不同的配置文件。devrelease

Cargo 对每个配置文件都有默认设置,当您没有应用时 在项目的 Cargo.toml 文件中显式添加了任何部分。 通过为要自定义的任何配置文件添加部分,您可以 覆盖默认设置的任何子集。例如,以下是默认的 和 配置文件的设置值:[profile.*][profile.*]opt-leveldevrelease

文件名: Cargo.toml

[profile.dev]
opt-level = 0

[profile.release]
opt-level = 3

该设置控制 Rust 将应用于的优化数量 您的代码,范围为 0 到 3。应用更多优化扩展 编译时间,因此,如果你正在进行开发并经常编译代码, 您需要更少的优化以更快地编译,即使生成的代码 运行速度较慢。因此,默认值为 。当您 准备好发布您的代码,最好花更多时间进行编译。您只会 在 release 模式下编译一次,但您将多次运行编译后的程序, 因此,发布模式会用更长的编译时间来换取运行速度更快的代码。那是 为什么配置文件的默认值为 .opt-levelopt-leveldev0opt-levelrelease3

您可以通过在 Cargo.toml 中为其添加不同的值来覆盖默认设置。例如,如果我们想在 development 配置文件中,我们可以将这两行代码添加到项目的 Cargo.toml 文件中:

文件名: Cargo.toml

[profile.dev]
opt-level = 1

此代码将覆盖 .现在,当我们运行 时, Cargo 将使用配置文件的默认值以及我们对 .因为我们设置为 ,所以 Cargo 将应用更多 优化,但不如发布版本中的优化那么多。0cargo builddevopt-levelopt-level1

有关每个配置文件的配置选项和默认值的完整列表,请参阅 Cargo 的文档

本文档由官方文档翻译而来,如有差异请以官方英文文档(https://doc.rust-lang.org/)为准