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