首页 > 解决方案 > 未找到本地依赖项

问题描述

我有一个项目包含两个(二进制)包,前端和后端。两者都是由货物独立创建和管理的。在前端,我想访问在后端声明的一些类型,所以我添加到前端的Cargo.toml

[dependencies.myapp-backend]
path = "../myapp-backend"

这符合我的文件夹结构并且cargo-run不会抱怨。但是我不能在前端使用 crate:当我在我的前端添加extern crate myapp-backend(或带有或不带有_替代的变体之一-)到我的前端main.rs时,编译器对我大喊它找不到板条箱。

为了检查 Cargo.toml 中的整个依赖语句是否被评估,我翻转了一些字母,这给了我一个即时编译错误(因此它评估)。此外,我直接将导入语句与use myapp-backend, 再次与连字符的变体交换,这导致了预期的no 'myapp_backend' external crate. 我什至对外部依赖项使用了替代表示法,但没有效果:

myapp-backend = {path = "../myapp-backend"}

我很确定我错过了一些愚蠢的简单东西,但是在阅读了 Cargo 的文档以及 Stack Overflow 两天后,我敢问。^^

标签: rustrust-cargo

解决方案


您不能使用可执行文件(带有main.rs文件的 crate)作为依赖项。但是您可以将所有共享的东西移动到 3. library crate 中,并将其用作两个可执行文件中的依赖项。


推荐阅读