如何从`src`目录之外的目录导入模块?

0 module rust rust-cargo

我在学习如何访问模块时陷入困境。我正在尝试插入除 之外的文件srcsrc。它不起作用并且给了我一个错误。这是我的项目树。

$ Project1
.
|-- src
|       |-- main.rs
|   |--FolderinSrcFolder 
|       |--folderinsrcmodule.rs    
|
|--anothersrc
|   |--mod.rs
|
|-- rootmodule.rs
|-- Cargo.toml
|-- Cargo.lock
Run Code Online (Sandbox Code Playgroud)

我怎样才能访问anothersrc/mod.rs src/main.rs?我如何rootmodule.rs访问src/main.rs

我已经阅读了 Rust 文档。

She*_*ter 6

惯用解决方案

\n

。将所有源代码放入该 src目录中。您还可以使用自己的src目录创建另一个 crate。不要与这些习语和惯例作斗争,这根本不值得。

\n

也可以看看:

\n\n

字面解法

\n

这直接回答了您的问题,但我强烈建议您实际上不要使用它

\n

布局

\n
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Cargo.toml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 bad_location.rs\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n \xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.rs\n
Run Code Online (Sandbox Code Playgroud)\n

src/main.rs

\n
#[path = "../bad_location.rs"]\nmod bad_location;\n\nfn main() {\n    println!("Was this a bad idea? {}", bad_location::dont_do_this());\n}\n
Run Code Online (Sandbox Code Playgroud)\n

错误定位.rs

\n
pub fn dont_do_this() -> bool {\n    true\n}\n
Run Code Online (Sandbox Code Playgroud)\n

关键是#[path]注释。

\n

也可以看看:

\n\n