如何使用Rust中其他项目的依赖关系?

如何使用Rust中其他项目的依赖关系?,rust,rust-cargo,Rust,Rust Cargo,我已将一个包列为我的依赖项。这个包还有几个我想使用的其他依赖项。我该怎么做 这是我的Cargo.toml文件: [dependencies.substrate-api-client] git = "https://github.com/scs/substrate-api-client" 以下是我导入模块的方式: use clap::{load_yaml, App}; 以下是我面临的错误: error[E0432]: unresolved import `clap` --> src

我已将一个包列为我的依赖项。这个包还有几个我想使用的其他依赖项。我该怎么做

这是我的Cargo.toml文件:

[dependencies.substrate-api-client]
git = "https://github.com/scs/substrate-api-client"

以下是我导入模块的方式:

use clap::{load_yaml, App};
以下是我面临的错误:

error[E0432]: unresolved import `clap`
  --> src/main.rs:17:5
   |
17 | use clap::{load_yaml, App};
   |     ^^^^ use of undeclared type or module `clap`
尽管如此,我上面列出的依赖关系仍然是api客户端

我还尝试使用extern板条箱:

但它也不起作用,并产生以下错误:

error[E0463]: can't find crate for `clap`

这个问题已经回答了


然而,应该注意的是,板条箱的依赖关系是它自己的,除非明确选择公开。这是一个好办法。如果您能够出于自己的目的依赖Subscriber api client提供的clap,那么如果Subscriber api client选择将clap版本更新为包含破坏性更改的版本,并且您尚未在Cargo.toml中设置依赖项的标记/分支,则应用程序可能无法编译

仅仅因为依赖项有依赖项,并不意味着它直接依赖于您自己的代码。您需要明确声明您自己使用的任何板条箱上的依赖项。您需要明确列出您的依赖项。考虑一下你正在使用的库在内部停止使用CLAP的场景。如果依赖项的内部实现发生变化,您的程序可能会中断,这有意义吗?请不要回答重复的问题。相反,投票以重复的方式结束该问题。重复内容使维护准确和最新答案变得更加困难。
error[E0463]: can't find crate for `clap`