cargo-run(1)
定义
cargo-run - 运行当前包
概要
cargo run
[options] [--
args]
说明
运行本地包的二进制程序或实例。
两个破折号(--
)后的所有参数都传递给二进制程序运行。
如果同时向Cargo和二进制程序传递参数,那么 --
后面的参数将传递给二进制程序,前面的参数将传递给Cargo。
选项
包的选择
默认情况下,选中当前工作目录下的包。可以用 -p
标志来选择工作空间中不同的包。
-p
spec--package
spec- 运行包。 见 cargo-pkgid(1) 了解 SPEC 规格。
目标选择
当未给出目标选择选项时, cargo run
将运行二进制目标。如果有多个二进制目标,必须传递一个目标标志。或者,在 Cargo.toml
指定 [package]
表 default-run
字段。
特性选择
特性标志允许你控制开启哪些特性。当没有提供特性选项时,会为每个选择的包启用 default
特性。
参阅 特性文档 了解更多内容。
-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在不同的模式下运行,目标制品放在单独目录。 参见 构建缓存 文档了解详情。
-r
--release
- 用
release
编译设置运行优化的制品。 参见--profile
选项,以按名称选择特定的编译设置。 --profile
name- 以给定的编译设置运行。 见 参考 了解编译设置详情。
--ignore-rust-version
- 即使所选的Rust编译器比项目
rust-version
字段中配置所需的Rust版本更早,仍运行目标。 --timings=
fmts- 输出每次编译需要多长时间的信息,并跟踪时间段的并发信息。
接受可选的逗号分隔的输出格式列表;没有参数的
--timings
将默认为--timings=html
。 指定未稳定的输出格式(而不是默认),需要-Zunstable-options
。 有效的输出格式:html
(未稳定, 要求-Zunstable-options
): 在target/cargo-timings
目录下生成可阅读的 cargo-timing.html 文件,并附编译报告。 如果你想查看更早的运行情况,也可以将报告写到同一目录下,文件名带有时间戳。 HTML输出适合人类阅读,机器不可读。json
(未稳定, 要求-Zunstable-options
): 发送机器可读的关于时间信息的JSON。
输出选项
--target-dir
directory- 所有生成制品和中间文件的目录。 也可以用
CARGO_TARGET_DIR
环境变量, 或build.target-dir
配置。 默认为工作空间的根target
。
显示选项
-v
--verbose
- 进行详细输出。可以指定两遍来开启 "非常详细" 模式,输出更多的额外信息,像是依赖项的警告和构建脚本的输出信息。
也可以通过
term.verbose
配置 。 -q
--quiet
- 不打印 cargo 日志信息。
也可以通过
term.quiet
配置。 --color
when- 控制使用彩色输出。可选值有:
auto
(默认值): 自动检测终端是否支持彩色输出。always
: 总是显示彩色。never
: 从不显示彩色。
也可以在
term.color
配置。 --message-format
fmt- 特征信息的输出格式。可以多次指定,数值由逗号分隔。有效值:
human
(默认): 以人可阅读的文本格式显示。short
和json
冲突。short
: 发出更短的、人可阅读的文本信息。human
和json
冲突。json
: 向标准输出发送JSON信息。 见 参考 了解详情.human
和short
冲突。json-diagnostic-short
: 确保JSON消息的rendered
字段包含rustc的"short"渲染。不能和human
short
。json-diagnostic-rendered-ansi
: 确保JSON消息的rendered
字段包含嵌入式ANSI颜色代码,以遵从rustc的默认颜色方案。 不能和human
short
。json-render-diagnostics
: 指示Cargo在打印的JSON信息中不包含rustc的特征信息,而是由Cargo来渲染来自rustc的JSON信息。Cargo自身的JSON和其他来自rustc的信息仍会发送。不能和human
short
。
配置选项
--manifest-path
path-
Cargo.toml
文件的路径。默认, Cargo 在当前目录和任意父目录搜索Cargo.toml
文件。 --frozen
--locked
- 这些标志都要求
Cargo.lock
文件是最新的。 如果lock文件丢失, 或是需要更新, Cargo会返回错误并退出,--frozen
选项还会阻止cargo通过网络来判断其是否过期。可以用于断言
Cargo.lock
文件是否最新状态(例如CI构建)或避免网络访问。 --offline
- 阻止Cargo访问网络。如果不指定该选项,Cargo会在需要使用网络但不可用时停止构建并返回错误。设置该标识,Cargo将尽可能不使用网络完成构建。
需注意,这样可能会导致与在线模式不同的依赖处理,Cargo将限制仅使用已下载到本地的crate,即使本地索引中有更新版本。 查阅 cargo-fetch(1) 命令,在脱机前下载依赖。
也可以用
net.offline
配置。
常规选项
+
toolchain- 如果Cargo已经通过rustup安装,并且第一个传给
cargo
的参数以+
开头, 则当作rustup的工具链名称。(例如+stable
或+nightly
). 查阅 rustup 文档 了解关于工具链覆盖的信息。 --config
KEY=VALUE or PATH- 覆盖Cargo配置项的值,该参数应当为TOML
KEY=VALUE
语法, 或者提供附加的配置文件的路径。该标识可以多次指定。 查阅 命令行覆盖部分 获取更多信息 -h
--help
- 打印帮助信息。
-Z
flag- Cargo不稳定的(每日构建)标志。运行
cargo -Z help
了解详情。
其他选项
-j
N--jobs
N- 并行执行的任务数。可以通过
build.jobs
配置。默认值为逻辑CPU数。如果设置为负值,则最大的并行任务数为*逻辑CPU数*加*这个负数*。该值不能为0。 --keep-going
- 尽可能的构建依赖图中的 crate ,而不是一个失败就停止。功能还不稳定,需要
-Zunstable-options
。
环境
查阅 参考 了解Cargo读取环境变量。
退出状态
0
: Cargo 执行成功。101
: Cargo 没有成功完成。
示例
-
构建本地包并运行其主要目标(假设仅有一个二进制文件):
cargo run
-
运行附带参数的实例:
cargo run --example exname -- --exoption exarg1 exarg2