rust - 未找到本地依赖项
问题描述
我有一个项目包含两个(二进制)包,前端和后端。两者都是由货物独立创建和管理的。在前端,我想访问在后端声明的一些类型,所以我添加到前端的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 两天后,我敢问。^^
解决方案
您不能使用可执行文件(带有main.rs文件的 crate)作为依赖项。但是您可以将所有共享的东西移动到 3. library crate 中,并将其用作两个可执行文件中的依赖项。
推荐阅读
- linux - 在linux中,用户模式堆栈存储在哪里?
- sql - 需要帮助来查找查询中的问题并对其进行优化
- python - QSyntaxHighlighter 的 QRegExp 和单引号文本
- amazon-web-services - Amazon EC2 到 AWS Elasticache Redis 连接问题
- android - 在 Kotlin 中使用 Retrofit 和 RxJava 2 获取 JSON 结果
- c# - 并行运行多个任务。如何获取 TaskCancelledException 背后的原因?
- node.js - Puppeteer - UnhandledPromiseRejectionWarning
- postgresql - Docker Postgresql 错误提示:服务器必须由拥有数据目录 postgresql rhel 的用户启动
- javascript - 以角度循环遍历数组时无法读取 0 未定义的属性
- c++ - 返回被删除节点的值