是否有可能以这种方式构建 Rust 项目?
目录结构:
src
??? a
? ??? bin1.rs
??? b
? ??? bin2.rs
??? common
??? mod.rs
Run Code Online (Sandbox Code Playgroud)
来自 Cargo.toml:
[[bin]]
name = "bin1"
path = "src/a/bin1.rs"
[[bin]]
name = "bin2"
path = "src/b/bin2.rs"
Run Code Online (Sandbox Code Playgroud)
我希望能够common在bin1.rs和 中使用该模块bin2.rs。可以通过在导入之前添加 path 属性来实现:
#[path="../common/mod.rs"]
mod code;
Run Code Online (Sandbox Code Playgroud)
有没有一种方式bin1.rs,并bin2.rs在使用common,而不必硬编码路径?
在二进制文件之间共享代码的推荐方法是拥有一个src/lib.rs文件。两个二进制文件都可以自动访问通过此lib.rs文件访问的任何内容作为单独的包。
然后您只需mod common;在src/lib.rs文件中定义 a 即可。如果您的 crate 被调用my_crate,您的二进制文件将能够使用它
use my_crate::common::Foo;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
870 次 |
| 最近记录: |