![](/img/trans.png)
[英]How to include files from same directory in a module using Cargo/Rust?
[英]Use module from parent directory in rust
是否有可能以这种方式构建 Rust 项目?
目录结构:
src
├── a
│ └── bin1.rs
├── b
│ ├── bin2.rs
└── common
├── mod.rs
来自 Cargo.toml:
[[bin]]
name = "bin1"
path = "src/a/bin1.rs"
[[bin]]
name = "bin2"
path = "src/b/bin2.rs"
我希望能够使用bin1.rs
和bin2.rs
的common
模块。 可以通过在导入之前添加 path 属性来实现:
#[path="../common/mod.rs"]
mod code;
有没有办法让bin1.rs
和bin2.rs
使用common
而不必对路径进行硬编码?
在二进制文件之间共享代码的推荐方法是使用src/lib.rs
文件。 两个二进制文件都可以自动访问可通过此lib.rs
文件访问的任何内容作为单独的包。
然后你只需定义一个mod common;
在src/lib.rs
文件中。 如果您的 crate 名为my_crate
,则您的二进制文件将能够与
use my_crate::common::Foo;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.