Промежуточный ящик должен повторно экспортировать макросы, чтобы они были доступны:
mac / src / lib.rs
#[macro_export]
macro_rules! a_macro {
() => (42);
}
inter / src / lib.rs
pub extern crate mac;
pub use mac::*; // Re-export the macros
ex / src / main.rs
#[macro_use]
extern crate inter;
fn main() {
println!("Hello, {}", a_macro!());
}
В вашем случае, это либо ошибка в библиотеке, либо они намеренно решили не реэкспортировать их, поэтому вам нужновозьми это с собой.Вы можете напрямую полагаться на базовый ящик, но затем вы открываете себя для того, чтобы иметь несовпадающие версии ящика, что приводит к досадным ошибкам.