Rust clap 3.0.0-beta.5使用derive宏定义Options编译失败咨询
问题解决说明
clap 3.0.0-beta.5 完全支持 derive 宏相关功能,你遇到的编译报错是配置疏漏导致的,具体修正方法如下:
- 修改
Cargo.toml中 clap 依赖的声明,额外启用derive特性开关:
[dependencies] clap = { version = "3.0.0-beta.5", features = ["derive"] }
- 报错原因:该beta版本的clap默认不会编译导出derive相关的宏实现,只有开启
derive特性后,Parser派生宏、#[clap]属性才会被正常导入到作用域,和你收到的错误提示中「导入的Parser只是trait,没有对应派生宏」的描述完全吻合。 - 示例文件找不到的说明:beta测试阶段的示例命名会频繁调整,你可以在该版本的examples目录下查找带derive关键字的示例文件,功能逻辑和官方文档给出的示例完全一致。
修改依赖配置后重新执行cargo build即可正常编译运行示例代码。
内容的提问来源于stack exchange,提问作者Huw Walters
相关产品推荐
相关产品推荐

