Rust 通过Cargo传递程序参数

Rust 通过Cargo传递程序参数,rust,Rust,我有一些当前正在使用的示例代码,在Cargo.toml [dependencies] getopts = "0.2" 然而,由于明显的原因,我似乎无法通过货物传递参数(-t,--test)(例如货物运行--test) 因为我已经指定了外部依赖,所以尝试运行rustc src/main.rs--test也不会起作用: src/main.rs:2:5: 2:21 error: unresolved import `getopts::Options`. There is no `Options` i

我有一些当前正在使用的示例代码,在
Cargo.toml

[dependencies]
getopts = "0.2"
然而,由于明显的原因,我似乎无法通过货物传递参数(
-t
--test
)(例如
货物运行--test

因为我已经指定了外部依赖,所以尝试运行
rustc src/main.rs--test
也不会起作用:

src/main.rs:2:5: 2:21 error: unresolved import `getopts::Options`. There is no `Options` in `getopts`
src/main.rs:2 use getopts::Options;
              ^~~~~~~~~~~~~~~~
error: aborting due to previous error

目前是否有其他方法来实现此目的或某些常见的替代方法?

您可以使用
--
将尾部参数传递给
货物运行

man
页面:

所有尾随参数都传递给二进制文件以运行。如果你路过 Cargo和binary的参数,
--
之后的参数转到binary, 之前的那些都是去货运的


在我看来,你有两个不同的问题。 首先是如何将标志传递给可执行文件(这由@TartanLlama解决),其次是编译错误

供将来参考(至少我的系统为rust 1.19,cargo 0.20): 您使用了一个外部板条箱
getopts
,默认情况下,
rustc
不知道。 另一方面,
cargo
理解这一点。
通过运行
cargo-rustc
(或者更好的
cargo-build
)而不是
rustc
,编译错误将消失。

感谢简单的解决方案;应该开始更频繁地阅读手册页:-)@Juxhin:注意,它通常用于许多调用其他程序的Unix工具中;所以总的来说知道是件好事。
cargo run -- --test