我有一个包含两个(二进制)包,前端和后端的项目。两者均由货物独立创建和管理。在前端,我想访问后端声明的一些类型,所以我添加到前端的Cargo.toml
:
[dependencies.myapp-backend]
path = "../myapp-backend"
这符合我的文件夹结构,cargo-run
不会抱怨。然而我不能在前端使用箱子:当我向我的前端的extern crate myapp-backend
添加_
(或者有或没有-
而不是main.rs
的变体之一)时,编译器向我大喊它无法找到箱子。
为了检查是否完全评估了Cargo.toml中的整个依赖语句,我翻了一些字母,这给了我一个即时编译错误(因此它被评估)。另外,我用use myapp-backend
交换了import语句,再次使用连字符的变体直接交换,这导致了预期的no 'myapp_backend' external crate
。我甚至使用替代符号表示外部依赖,但没有效果:
myapp-backend = {path = "../myapp-backend"}
我很确定我错过了一些简单的傻事,但是在阅读了Cargo的文档以及Stack Overflow上下两天之后,我敢问。 ^^
您不能将可执行文件(包含main.rs文件的文件夹)用作依赖项。但是您可以将所有共享内容移动到3.库包中,并将其用作两个可执行文件中的依赖项。