这个问题在这里已有答案:
我在箱子里重复使用宏时遇到了麻烦。
如果在./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
中导入这个宏?
我想到了!它是自动导入的,但我没有意识到宏是按顺序导入的!
我在submod
之前导入了macros
模块,所以my_macro
还没有看到。通过交换订单,我得到了预期的行为。