【发布时间】:2016-08-26 23:32:16
【问题描述】:
我有以下目录结构
/main.rs/lib.rs/tutorial/mod.rs/tutorial/foo.rs
在foo.rs 中,我需要使用来自glium 库的宏implement_vertex!。如果我把#[macro_use] extern crate glium; 放在foo.rs 的前面,我会得到一个error: an `extern crate` loading macros must be at the crate root。我也收到了error: macro undefined: 'implement_vertex!'
还有一个 lib.rs 是教程模块的 crate 根。我需要把#[macro_use] 放在那里。如果我同时拥有 main.rs 和 lib.rs,这会创建 2 个板条箱根吗?
在子模块中导入宏的正确方法是什么?
【问题讨论】:
-
没有实际代码,这个只能盲猜解决。我们需要的只是结构、导入位置和使用位置。
-
如何编译(
cargo build)?您是否修改了您的Cargo.toml?mod tutorial;行在哪个文件中?mod foo;行在哪个文件中?如果没有这些信息,我们只能猜测您的模块树的外观,如@DK。已经说过了。
标签: rust