首页 > 解决方案 > 如何在 Rust 中使用来自其他项目的依赖项?

问题描述

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

这是我的 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`

尽管如此,我上面列出的依赖项(substrate-api-client)本身就是clap一个依赖项

我也尝试使用extern crate

extern crate clap;
use clap::{load_yaml, App};

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

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

标签: rustrust-cargo

解决方案


这个问题已经在这里回答了。

但是,应该注意的是,除非明确选择公开,否则 crate 的依赖项是它自己的。这一个很好的方法。如果您能够出于自己的目的依赖clapfrom ,如果选择将版本更新为包含重大更改的版本(您尚未在 Cargo.toml 中设置依赖项的标签/分支),您的应用程序可能无法编译。 substrate-api-clientsubstrate-api-clientclap


推荐阅读