我想制作一个包含可重用库(实现大部分程序)的Rust包,以及使用它的可执行文件.
假设我没有混淆Rust模块系统中的任何语义,我的Cargo.toml文件应该是什么样的?
我正在尝试从另一个模块调用属于某个模块的函数(用于代码分解、组织等)。
这是我的箱子结构:
? mod_test git:(master) ? tree
.
??? Cargo.lock
??? Cargo.toml
??? src
??? bin
? ??? one.rs
??? lib
? ??? two.rs
??? main.rs
3 directories, 5 files
Run Code Online (Sandbox Code Playgroud)
在main我声明:
pub mod bin {
pub mod one;
}
pub mod lib {
pub mod two;
}
Run Code Online (Sandbox Code Playgroud)
所有这些文件只包含一个微不足道的 pub fn main() {println!("hello");}.
此时,一切正常。
lib::two::main的bin/one.rs?use crate::lib::two;, use super::lib::two;, 都没有use self::super::lib::two;添加到bin/one.rs工作中。 …
我正在尝试构建一个 Rust 二进制可执行文件。在 src 目录中我有四个文件:
主要.rs:
use fasta_multiple_cmp::get_filenames;
fn main() {
get_filenames();
}
Run Code Online (Sandbox Code Playgroud)
mod.rs:
pub mod fasta_multiple_cmp;
pub mod build_sequences_matrix;
Run Code Online (Sandbox Code Playgroud)
fasta_multiple_cmp.rs:
pub mod fasta_multiple_cmp {
...
pub fn get_filenames() {
let args: Vec<String> = env::args().collect();
...
Run Code Online (Sandbox Code Playgroud)
build_sequences_matrix.rs:
pub mod build_sequences_matrix {
use simple_matrix::Matrix;
...
Run Code Online (Sandbox Code Playgroud)
货物告诉我:
src/main.rs:3:5 | src/main.rs:3:5 | 3 | 使用 fasta_multiple_cmp::get_filenames; | ^^^^^^^^^^^^^^^^^^^^ 使用未声明的板条箱或模块 `fasta_multiple_cmp
我相信我理解了一些小事情,但我迷失了。到底是怎么回事?
感谢您的任何提示!