首页 > 解决方案 > Rust 参考模块

问题描述

我在工作区中有一组文件,我想从另一个目录引用这些文件,但我找不到需要使用的语法。

例子是:

Primary
|_______ First
|            |_____ src
|                    |______ Cool_thing.rs
|_______ Second
            |_____ src
                    |______ main.rs

我想Cool_things从 main.rs引用一个结构

在 Primary 的 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;

没有变化usemod似乎允许我引用 mod 中的 struct 或 impl 或函数Cool_things

标签: modulerustreferenceworkspace

解决方案


问题是它需要第一个 src 目录中的“lib.rs”。基本上,rust 的文档似乎有点疏忽,如果你想使用本地依赖项,那么你必须有一个 lib.rs 文件,其中列出了你计划访问的所有模块。因此,在 First src 目录中创建一个 lib.rs,并列出“Mod Cool_things”将允许其他包引用该目录中的 mod 文件。

cargo.toml 文件:在上面的问题中插入有正确的路径和依赖关系,问题在于缺少 lib.rs 文件。

因此,如果您正在计划一个多二进制程序,您需要记住在分解代码然后从工作区的其他部分访问模块时拥有一个 lib.rs 文件。


推荐阅读