[英]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.