如何在另一个 bin 中重用主 bin 中的代码?
How to reuse code from the main bin in another bin?
我的项目结构是这样的:
.
├── Cargo.lock
├── Cargo.toml
└── src
├── bin
│ └── other.rs
├── main.rs
└── util.rs
(代码:https://gitlab.com/msrd0/cargo-bin-import)
在我的 other.rs
中,我试图重用 util
mod 中的代码,它在我的 public mod 中声明为 public mod main.rs
文件。我尝试了以下方法:
use util::do_sth
use crate::util::do_sth
use cargo_bin_import::util::do_sth
(带和不带外部板条箱)
mod util; use util::do_sth
extern crate util; use util::do_sth
(由 rustc 建议)
上面的 None 有效并给了我类似于此的错误消息:
error[E0432]: unresolved import `crate::util`
--> src/bin/other.rs:1:12
|
1 | use crate::util::do_sth;
| ^^^^ maybe a missing `extern crate util;`?
error: aborting due to previous error
使用一个库和两个二进制文件,然后在两个二进制文件中重用该库的代码。示例:
Cargo.toml
[lib]
name = "utils"
path = "src/utils.rs"
# cargo build --bin other
[[bin]]
name = "other"
path = "src/bin/other.rs"
# cargo build --bin main
[[bin]]
name = "main"
path = "src/main.rs"
然后use utils::{...}
。该路径取自您的问题,但是将 main 放在 bin/ 中并将 utils.rs 重命名为 lib.rs 可能是一种更标准的方法。
如果该库足够通用,您甚至可以在 crates.io 上发布它,让其他人从中受益。
我的项目结构是这样的:
.
├── Cargo.lock
├── Cargo.toml
└── src
├── bin
│ └── other.rs
├── main.rs
└── util.rs
(代码:https://gitlab.com/msrd0/cargo-bin-import)
在我的 other.rs
中,我试图重用 util
mod 中的代码,它在我的 public mod 中声明为 public mod main.rs
文件。我尝试了以下方法:
use util::do_sth
use crate::util::do_sth
use cargo_bin_import::util::do_sth
(带和不带外部板条箱)mod util; use util::do_sth
extern crate util; use util::do_sth
(由 rustc 建议)
None 有效并给了我类似于此的错误消息:
error[E0432]: unresolved import `crate::util`
--> src/bin/other.rs:1:12
|
1 | use crate::util::do_sth;
| ^^^^ maybe a missing `extern crate util;`?
error: aborting due to previous error
使用一个库和两个二进制文件,然后在两个二进制文件中重用该库的代码。示例:
Cargo.toml
[lib]
name = "utils"
path = "src/utils.rs"
# cargo build --bin other
[[bin]]
name = "other"
path = "src/bin/other.rs"
# cargo build --bin main
[[bin]]
name = "main"
path = "src/main.rs"
然后use utils::{...}
。该路径取自您的问题,但是将 main 放在 bin/ 中并将 utils.rs 重命名为 lib.rs 可能是一种更标准的方法。
如果该库足够通用,您甚至可以在 crates.io 上发布它,让其他人从中受益。