我在一个工作区中有一组文件,我想从另一个目录引用这些文件,但我找不到需要使用的语法。
示例如下:
Primary
|_______ First
| |_____ src
| |______ Cool_thing.rs
|_______ Second
|_____ src
|______ main.rs我想从main.rs引用Cool_things中的结构
在主要的Cargo.toml中,我放了:
[workspace]
members= ["First","Second", "Third"]
[dependencies.Second]
First= { path = "First" }在Second目录的Cargo.toml中,我有
[dependencies]
First = { path = "../First" }我已经在我的main.rs中尝试了一些东西,比如:
extern crate First;
use First::Cool_things::Cool_things;use或mod的任何变体似乎都不允许我引用mod Cool_things中的结构或impl或函数。
发布于 2020-02-19 23:37:32
问题是它需要在第一个src目录中有一个"lib.rs“。基本上,rust的文档似乎有点疏忽,它告诉人们,如果你想使用本地依赖,那么你必须有一个lib.rs文件,列出你计划访问的所有mods。因此,在第一个src目录中创建lib.rs并列出"Mod Cool_things“将允许其他包引用该目录中的mod文件。
上面问题中插入的cargo.toml文件具有正确的路径和依赖项,问题都是由于缺少lib.rs文件造成的。
因此,如果您正在计划一个多二进制程序,那么当您分解代码,然后从工作区的其他部分访问模块时,就需要记住要有一个lib.rs文件。
https://stackoverflow.com/questions/60299960
复制相似问题