11

我无法在 crate 中重复使用宏。

如果宏定义在./src/macros.rs

#[macro_export]
macro_rules! my_macro {
    ...
}

并用于./src/lib.rs

#[macro_use]
pub mod macros;

我看不到这个宏./src/submod/lib.rs

my_macro!(...);

它产生错误消息error: macro undefined: 'my_macro!'

有没有办法可以在这个子模块中导入这个宏submod

4

1 回答 1

10

我想到了!是自动导入的,没想到宏是按顺序导入的!

我之前导入了submod模块macros,所以还不my_macro可见。通过交换订单,我得到了预期的行为。

于 2015-06-28T18:37:40.637 回答