Rust 从父模块导入宏

Rust 从父模块导入宏,rust,rust-macros,rust-decl-macros,Rust,Rust Macros,Rust Decl Macros,我在板条箱中重新使用宏时遇到问题 如果宏是在/src/macros.rs中定义的: #[macro_export] macro_rules! my_macro { ... } #[macro_use] pub mod macros; my_macro!(...); 并用于/src/lib.rs: #[macro_export] macro_rules! my_macro { ... } #[macro_use] pub mod macros; my_macro!(...

我在板条箱中重新使用宏时遇到问题

如果宏是在
/src/macros.rs
中定义的:

#[macro_export]
macro_rules! my_macro {
    ...
}
#[macro_use]
pub mod macros;
my_macro!(...);
并用于
/src/lib.rs

#[macro_export]
macro_rules! my_macro {
    ...
}
#[macro_use]
pub mod macros;
my_macro!(...);
我在
/src/submod/lib.rs
中看不到此宏:

#[macro_export]
macro_rules! my_macro {
    ...
}
#[macro_use]
pub mod macros;
my_macro!(...);
它会产生错误消息
error:macro undefined:“my_macro!”


有没有办法将这个宏导入子模块
submod

我找到了!它是自动导入的,但我没有意识到宏是按顺序导入的


我在
macros
之前导入了
submod
模块,因此
my_macros
还不可见。通过交换顺序,我得到了预期的行为。

最好能看到前后修复它的代码位。我还希望看到解决这个问题的代码