我有一些目前正在使用getopts的示例代码,该代码在Cargo.toml
[dependencies]
getopts = "0.2"
然而,由于显而易见的原因,我似乎无法通过货物(例如-t
)传递论据(--test
,cargo run --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
目前还有另一种方法可以实现这个或一些常见的替代方案吗?
答案 0 :(得分:14)
您可以使用cargo run
将结尾参数传递给--
:
cargo run -- --test
来自man
页面:
所有尾随参数都传递给要运行的二进制文件。如果你路过 Cargo和二进制文件的参数,
--
之后的二进制文件, 去货物之前的那些。
答案 1 :(得分:0)
在我看来,你有两个不同的问题。 首先,如何将标志传递给您的可执行文件(这是由@TartanLlama解决的),第二个是您的编译错误。
供将来参考(至少对于我的系统有生锈1.19,货物0.20):
您使用了外部包getopts
,默认情况下rustc
不知道。
另一方面,cargo
了解这一点。
通过运行cargo rustc
(甚至更好cargo build
)代替rustc
,编译错误将消失。