繁体   English   中英

通过Cargo传递程序参数

[英]Passing program arguments through Cargo

我有一些示例代码,目前正在使用getopts ,它被指定为Cargo.toml的依赖Cargo.toml

[dependencies]
getopts = "0.2"

然而,由于显而易见的原因,我似乎无法通过货物(例如cargo run --test )传递参数( -t , - --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

是否有其他方法可以实现这一目标或暂时的替代方案?

您可以使用--将尾随参数传递给cargo run

cargo run -- --test

man页:

所有尾随参数都传递给二进制文件以运行。 如果你传递参数给货物和二进制,那些后--去二进制,那些去货之前。

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

为了将来的参考(这至少对于我的系统有生锈1.19,货物0.20):你使用了一个外部板条箱getopts ,默认情况下rustc不知道。 另一方面, cargo了解这一点。 通过运行cargo rustc (甚至更好的cargo build )而不是rustc ,编译错误将消失。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM