Rust跨库导入报错E0432:未声明crate/模块解决方案咨询
解决Rust本地UI库导入Wasm游戏库的依赖问题
1. 先确认UI库的Crate名称
打开make/ui/Cargo.toml,找到[package]下的name字段——这才是你在Game库中要引用的crate正式名称,比如:
[package] name = "my-ui-lib" version = "0.1.0" edition = "2021"
你之前用use ui::*报错,核心原因是:UI库lib.rs里的pub mod ui是crate内部的子模块,不是crate本身的名字,不能直接当成crate来引用。
2. 正确配置Game库的本地依赖
在make/game/Cargo.toml的[dependencies]区块里,按如下格式添加依赖,注意键名要和UI库的name字段完全一致:
[dependencies] my-ui-lib = { path = "../ui" }
3. 正确引用UI库的模块
因为UI库的lib.rs里是pub mod ui结构,所以在Game库的src/lib.rs中,要先引用crate名,再指向内部的ui模块:
use my_ui_lib::ui::*;
可选:简化引用的调整方案
如果想直接用use ui::*,可以做两个调整:
- 把UI库
make/ui/Cargo.toml里的name改成ui - 修改UI库的
src/lib.rs,把内部ui模块的内容导出到crate根:
pub use ui::*; pub mod ui;
这样配置后,在Game库中就能直接写use ui::*了。
最后验证
回到make/game目录,重新执行构建命令:
wasm-pack build --release --target web
内容的提问来源于stack exchange,提问作者user1709076
相关产品推荐
相关产品推荐

