Rust如何从子文件夹导入函数?调用src/lib/test.rs的hallo到src/main.rs
操作步骤
- 修改
src/lib/test.rs,给hallo函数添加pub关键字,Rust默认所有项为私有,仅同模块可访问:
pub fn hallo(){ println!("hallo"); }
- 在
src/lib目录下新建mod.rs文件,声明该目录下的子模块并导出test模块:
pub mod test;
- 修改
src/main.rs,顶部声明lib模块、导入hallo函数:
mod lib; use lib::test::hallo; #[allow(dead_code)] fn main() { println!("Hello, world!"); hallo(); }
修改完成后执行cargo run即可正常运行,会依次输出Hello, world!和hallo。
可选方案(将lib作为独立库维护)
如果你计划把lib目录下的代码作为独立库管理,可按以下方式调整:
- 删除
src/lib目录下的空main.rs,保留src/lib/test.rs,新建src/lib.rs作为库根,内容为:
pub mod test;
- 在
src/main.rs中直接导入库内的函数,无需额外声明mod:
// 此处替换为你Cargo.toml里[package]下定义的name字段值 use 你的包名::test::hallo; #[allow(dead_code)] fn main() { println!("Hello, world!"); hallo(); }
内容的提问来源于stack exchange,提问作者Zeyecx
相关产品推荐
相关产品推荐

