Rust混淆了特定的包#2

sczxawaw  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(86)

在这里运行this script。而且还是一个Rustacean学习者。
昨天我遇到了一个docx_rs/docx-rs crate的问题。来自at 54321的启示。
但脚本仍然无法运行。它似乎有一个名为clap的板条箱的问题。

D:\My documents\...\word_file>cargo run
   Compiling word_file v0.1.0 (D:\My documents\software projects\EclipseWorkspace\py_exp\src\rust_2023-07A\word_file)
error[E0432]: unresolved import `clap::Parser`
  --> src\main.rs:30:9
   |
30 |     use clap::Parser;
   |         ^^^^^^^^^^^^ no `Parser` in the root

error: cannot determine resolution for the derive macro `Parser`
  --> src\main.rs:36:14
   |
36 |     #[derive(Parser, Debug)]
   |              ^^^^^^
   |
   = note: import resolution is stuck, try simplifying macro imports

error: cannot find attribute `command` in this scope
  --> src\main.rs:37:7
   |
37 |     #[command(author, version, about, long_about = None)]
   |       ^^^^^^^

error: cannot find attribute `arg` in this scope
  --> src\main.rs:39:11
   |
39 |         #[arg(short, long)]
   |           ^^^

error[E0599]: no function or associated item named `parse` found for struct `main::Args` in the current scope
  --> src\main.rs:71:26
   |
38 |     struct Args {
   |     ----------- function or associated item `parse` not found for this struct
...
71 |         let args = Args::parse();
   |                          ^^^^^ function or associated item not found in `main::Args`

字符串
对Rust反馈的清晰度印象深刻。但我还没弄明白到底出了什么问题。根据链接的脚本,我的Cargo.toml的dependencies部分包括以下行:
clap = "2.33.0"
有人知道这次是怎么回事吗

  • 稍后 *

在更改为clap = "4.3.11"之后。仍有错误:

error: cannot find derive macro `Parser` in this scope
  --> src\main.rs:36:14
   |
36 |     #[derive(Parser, Debug)]
   |              ^^^^^^
   |
note: `Parser` is imported here, but it is only a trait, without a derive macro
  --> src\main.rs:30:9
   |
30 |     use clap::Parser;
   |         ^^^^^^^^^^^^


.+ 3更多的错误毫无疑问由于上述
不幸的是,我还没有到Rust 101的那部分,你可以在那里学习“派生宏”...!我不知道那是什么意思。

krcsximq

krcsximq1#

(this添加了答案,因为问题需要回答,但不一定关闭)
正如richzilla所述,在这种情况下,答案是使用latest (stable) version of "clap"并首先运行以下命令:

cargo add clap --features derive

字符串
如所述,“特征”是板条箱中的常见概念。

相关问题