我正在努力包括在内!一些自动生成的代码到模块中。我的模块看起来像......
use libc::c_int;
mod nif_versions {
include!(concat!(env!("OUT_DIR"), "/nif_versions.snippet"));
}
...和nif_versions.snippet看起来像......
const NIF_MAJOR_VERSION: c_int = 2;
const NIF_MINOR_VERSION: c_int = 7;
但是这给了我以下错误:
/home/goertzen/ruster/target/build/ruster-7f1b6b5473eea720/out/nif_versions.snippet:1:26: 1:31 error: use of undeclared type name `c_int`
/home/goertzen/ruster/target/build/ruster-7f1b6b5473eea720/out/nif_versions.snippet:1 const NIF_MAJOR_VERSION: c_int = 2;
^~~~~
note: in expansion of include!
如果我跳过包含!手动粘贴这两行,一切正常。此外,我必须将include包装在一个模块中以使其工作。如果可能的话,我想摆脱它。
答案 0 :(得分:3)
您只需将use libc::c_int
移至内部mod
声明,因为use
仅在其使用的模块内有效:
mod nif_versions {
use libc::c_int;
include!(concat!(env!("OUT_DIR"), "/nif_versions.snippet"));
}