You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust项目模块导入错误:Enigma实现中的引用问题排查

解决Enigma Rust项目的模块引用错误

问题根源

当你在main.rs中添加mod bin;后,bin成为了crate根下的子模块,enigma.rs作为bin的子模块,不再是独立的crate入口,原来直接引用同目录模块的路径写法自然失效。

修复方案

保持现有main.rs和bin/mod.rs的代码不变,修改enigma.rs中的引用路径,两种可选方式:

方式1:使用相对路径(推荐)

利用super引用父模块bin下的其他子模块,或者用self直接引用同级模块:

// 用super指向父模块bin
use super::reflector::Reflector;
use super::rotor::Rotor;
use super::plugboard::Plugboard;

// 或者用self直接引用同级模块,效果相同
// use self::reflector::Reflector;
// use self::rotor::Rotor;
// use self::plugboard::Plugboard;

方式2:使用绝对路径

从crate根出发,明确写出完整路径:

use crate::bin::reflector::Reflector;
use crate::bin::rotor::Rotor;
use crate::bin::plugboard::Plugboard;

为什么之前的尝试失败

  • 直接写use bin::...:在enigma.rs内部,bin并不是当前作用域可见的模块,当前模块的路径是crate::bin::enigma,必须通过crate::bin或者super才能访问到同级模块。
  • 添加mod bin;到enigma.rs:这会让Rust去寻找enigma/bin/目录下的文件,显然你的项目结构里不存在这个路径,所以报错。

内容的提问来源于stack exchange,提问作者NotAName

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:20:08