cargo-check(1)
名称
cargo-check - 检查当前包
简介
cargo check
[options]
描述
检查本地包及其所有依赖项是否有错误。这实际上将编译软件包,而不执行代码生成的最后一步,这比运行“Cargo构建”要快。 编译器会将元数据文件保存到磁盘上,这样,如果源文件没有被修改,以后运行时就可以重用它们。一些诊断和错误仅在代码生成期间发出,因此它们本质上不会在“Cargo检查”中报告。
选项
包选择
缺省情况下,当没有给出包选择选项时,所选择的包取决于所选择的清单文件(如果没有给出 - manifest-path
,则基于当前工作目录)。如果清单是工作区的根,则选择工作区的默认成员,否则只选择清单定义的包。
可以使用根清单中的 workspace.default-members
键显式设置工作区的默认成员。如果未设置此项,虚拟工作区将包括所有工作区成员(相当于传递 - workspace
),而非虚拟工作区将只包括根机箱本身。
-p
spec...--package
spec...- 仅对指定的包进行基准测试。SPEC 格式请参考cargo-pkgid(1)。该标志可以多次指定,并支持常见的Unix全局模式,如
*
、?
和[]
。然而,为了避免您的shell在Cargo处理glob模式之前意外扩展它们,您必须在每个模式周围使用单引号或双引号。 --workspace
- 检查工作区中的所有成员。
--all
--workspace
已弃用的别名--exclude
SPEC...- 排除指定的包。必须与
--workspace
标志一起使用。该标志可以多次指定,并支持常见的Unix全局模式,如*
、?
和[]
。然而,为了避免您的shell在Cargo处理glob模式之前意外扩展它们,您必须在每个模式周围使用单引号或双引号。
目标选择
当没有给出目标选择选项时,Cargo检查
将检查所选包的所有二进制和库目标。如果二进制文件缺少必需的特性
,则跳过它们。
传递目标选择标志将只检查指定的目标。
注意--bin
、--example
、--test
和--bench
标志也支持常见的Unix全局模式,如*
、?
和[]
。然而,为了避免您的 shell 在 Cargo 处理 glob 模式之前意外地扩展它们,您必须在每个 glob 模式周围使用单引号或双引号。
--lib
- 检查包的库。
--bin
name...- 检查指定的二进制文件。可以多次指定该标志 并支持常见的Unix glob模式。
--bins
- 检查所有二进制目标。
--example
name...- 检查指定的示例。该标志可以多次指定,并支持常见的Unix glob模式。
--examples
- 检查所有示例目标。
--test
name...- 检查指定的集成测试。该标志可以多次指定,并支持常见的Unix glob模式。
--tests
- 检查测试模式中设置了
test = true
清单标志的所有目标。默认情况下,这包括作为单元测试和集成测试构建的库和二进制文件。请注意,这也将构建任何所需的依赖项,因此lib目标可能会构建两次(一次作为 unittest,一次作为二进制、集成测试等的依赖项。). 可以通过在目标的清单设置中设置test
标志来启用或禁用目标。 --bench
name...- 检查指定的基准。该标志可以多次指定,并支持常见的Unix glob模式。
--benches
- 在基准模式下检查设置了
bench = true
清单标志的所有目标。默认情况下,这包括作为基准构建的库和二进制文件,以及基准目标。请注意,这也将构建任何所需的依赖项,因此lib目标可能会构建两次(一次作为基准,一次作为二进制文件、基准等的依赖项。). 可以通过在目标的清单设置中设置bench
标志来启用或禁用目标。 --all-targets
- 检查所有目标。这相当于指定
--lib --bins --tests --benches --examples
。
特性选择
功能标志允许您控制启用哪些功能。当未给出功能选项时,为每个选定的包激活“默认”功能。
请参见 the features documentation 了解更多详细信息。
-F
features--features
features- 要激活的以空格或逗号分隔的功能列表。可以使用
package-name/feature-name
语法来启用工作区成员的功能。可以多次指定该标志,从而启用所有指定的功能。 --all-features
- 激活所有选定软件包的所有可用功能。
--no-default-features
- 不要激活所选软件包的
default
功能。
编译选项
--target
triple- 检查给定的体系结构。默认为主机架构。三元组的一般格式是
<arch><sub>-<vendor>-<sys>-<abi>
。运行rustc --print target-list
以获取支持的目标列表。可以多次指定该标志.这也可以用
build.target
来指定 配置值。注意,指定这个标志会使Cargo以不同的模式运行,其中目标工件被放在一个单独的目录中。有关更多详细信息,请参见 build cache 文档。
-r
--release
- 用
release
概要文件检查优化的工件。 另请参见--profile
选项,以按名称选择特定的配置文件。 --profile
name- 使用给定的配置文件进行检查。
作为一个特例,指定
test
配置文件还将启用测试模式下的检查,这将启用检查测试并启用test
cfg选项。 如需详细信息,请参阅rustc tests。请参见参考,了解有关配置文件的更多详细信息。
--ignore-rust-version
- 即使所选Rust编译器比项目的
rust-version
字段中配置的所需Rust版本旧,也要检查目标。 --timings=
fmts- 输出每次编译需要多长时间的信息,并随着时间的推移跟踪并发信息。接受可选的逗号分隔的输出格式列表;不带参数的
--timings
将默认为--timings=html
。指定输出格式(而不是默认格式)不稳定,需要-Zunstable-options
。有效的输出格式:html
(不稳定,需要-Zunstable-options
):将一个可读的文件cargo-timing.html
写入target/cargo-timings
目录,并附上编译报告。如果您想查看以前的运行,也可以在相同的目录下写一个带有时间戳的报告。HTML输出只适合人类使用,不提供机器可读的计时数据。json
(不稳定,需要-Zunstable-options
):发出有关计时信息的机器可读json信息。
输出选项
--target-dir
directory- 所有生成的工件和中间文件的目录。也可以用
CARGO_TARGET_DIR
环境变量或build.target-dir
config value。 默认为工作区根目录中的< code>target。
显示选项
-v
--verbose
- 使用详细输出。 对于 "非常详细"的输出,可以指定两次,非常详细的输出包括额外的输出,如依赖项警告和构建脚本输出。
也可以用
term.verbose
配置值。 -q
--quiet
- 不要打印Cargo日志信息。也可以用
term.quiet
来指定 配置值。 --color
when- 控制何时使用彩色输出。有效值:
auto
(默认):自动检测上是否支持颜色 终端。always
:始终显示颜色。never
: 从不显示颜色
也可以用
term.color
指定 配置值. --message-format
fmt- 诊断消息的输出格式。可以多次指定,由逗号分隔的值组成。有效值:
human
(默认):以人类可读的文本格式显示。与< code>short和< code>json冲突。short
: 发出更短的、人类可读的文本消息。与< code>human和< code>json冲突。json
: 向stdout发出JSON消息。 请参见 the reference 了解更多详情。 与human
和short
冲突。json-diagnostic-short
:确保JSON消息的rendered
字段包含来自rustc的"简短"呈现。不能与human
或short
一起使用。json-diagnostic-rendered-ansi
: Ensure therendered
field of JSON messages contains embedded ANSI color codes for respecting rustc's default color scheme. Cannot be used withhuman
orshort
.json-render-diagnostics
:指示Cargo不要在打印的JSON消息中包含rustc诊断,而是Cargo本身应该呈现来自rustc的JSON诊断。Cargo自己的JSON诊断和来自rustc的其他诊断仍然会发出。不能与human
或short
一起使用。
清单选项
--manifest-path
pathCargo.toml
文件的路径。默认情况下,Cargo在当前目录或任何父目录中搜索Cargo.toml
文件。--frozen
--locked
- 这两个标志都要求
Cargo.lock
文件是最新的。如果锁文件丢失,或者需要更新,Cargo将出错退出。--freezed
标志还防止 Cargo 试图访问网络以确定其是否过期。在您希望断言
Cargo.lock
文件是最新的(如CI构建)或希望避免网络访问的环境中,可以使用这些文件。 --offline
- 防止Cargo以任何理由访问网络。如果没有这个标志,当Cargo需要访问网络而网络不可用时,Cargo将出错停止。有了这个标志,如果可能的话,Cargo将试图在没有网络的情况下前进。
请注意,这可能会导致与在线模式不同的依赖关系解析。Cargo将自己限制在本地下载的板条箱中,即使在索引的本地副本中可能有更新的版本。 请参阅cargo-fetch(1)命令,以便在脱机之前下载依赖项。
也可以用
net.offline
配置值。
常见选项
+
toolchain- 如果Cargo已经安装了rustup,并且
cargo
的第一个参数以+
开头,则它将被解释为rustup工具链名称 (例如+stable
或+nightly
). 有关工具链覆盖如何工作的详细信息,请参阅 rustup documentation rust up文档。 --config
KEY=VALUE or PATH- 覆盖Cargo配置值。该参数应该采用TOML语法
KEY=VALUE
,或者作为额外配置文件的路径提供。可以多次指定该标志。 请参见,了解更多信息。 -h
--help
- 打印帮助信息。
-Z
flag- Cargo 不稳定(nightly-only)标志。运行
cargo -Z help
获取详细信息。
其他选项
-j
N--jobs
N- 要运行的并行作业的数量。也可以用
build.jobs
config value指定。 默认为逻辑CPU的数量。如果为负,它将并行作业的最大数量设置为逻辑CPU的数量加上提供的值。 不应为0。 --keep-going
- 在依赖图中构建尽可能多的 crate ,而不是在第一个构建失败时中止构建。不稳定,需要
-Zunstable-options
。 --future-incompat-report
- 显示在执行此命令期间产生的任何未来不兼容警告的未来不兼容报告
请参阅 cargo-report(1)
环境
参见 the reference Cargo读取的环境变量的详细信息。
退出状态
0
: Cargo 成功。101
: Cargo 未能完成。
示例
-
检查本地包是否有错误:
cargo check
-
检查所有目标,包括单元测试:
cargo check --all-targets --profile=test