Tôi đang sử dụng rustc 1.0.0 (a59de37e9 2015-05-13) (built 2015-05-14)
và tôi đã có các thiết lập sau:Tiếp cận submodule từ submodule khác khi cả hai submodules là trong các mô-đun chính cùng
my_app/
|
|- my_lib/
| |
| |- foo
| | |- mod.rs
| | |- a.rs
| | |- b.rs
| |
| |- lib.rs
| |- Cargo.toml
|
|- src/
| |- main.rs
|
|- Cargo.toml
src/main.rs:
extern crate my_lib;
fn main() {
my_lib::some_function();
}
my_lib/lib.rs:
pub mod foo;
fn some_function() {
foo::do_something();
}
my_lib/foo/mod.rs:
pub mod a;
pub mod b;
pub fn do_something() {
b::world();
}
my_lib/foo/a.rs:
pub fn hello() {
println!("Hello world");
}
my_lib/foo/b.rs:
use a;
pub fn world() {
a::hello();
}
Cargo.toml:
[dependencies.my_lib]
path = "my_lib"
Khi tôi cố gắng biên dịch nó tôi nhận được lỗi sau đây ném cho tuyên bố use
trong B.rs
:
unresolved import `A`. There is no `A` in `???`
Tôi đang thiếu gì? Cảm ơn.
Vâng xin lỗi, 'B :: world()' thực sự được bao bọc trong một hàm khác. Tôi đang sử dụng hàng hóa để biên dịch dự án. Có thể là một lỗi trong hàng hóa sau đó? – morcmarc
Nếu sử dụng Hàng hóa là cần thiết để tái sản xuất, vui lòng đăng tệp 'Cargo.toml' của bạn. Khi nó đứng, ví dụ như được biên dịch tốt. –
Nó hoạt động. Cảm ơn bạn đã làm rõ nó. Tuy nhiên nó có phải là thành ngữ để sử dụng 'super :: module_name'? Nó cảm thấy hơi khó xử. – morcmarc