我正在尝试为SEAL C++ library编译绑定。这是my repo。
// Generate the bindings
let bindings = bindgen::Builder::default()
.generate_inline_functions(true)
.derive_default(true)
.header("./seal/src/seal/seal.h")
.clang_arg("-I./seal/src/")
.clang_arg("-std=c++17")
.clang_arg("-x")
.clang_arg("c++")
.opaque_type("std::.*")
.whitelist_type("seal::.*")
.generate()
.expect("Unable to generate bindings");
let out_path = PathBuf::from("./src/");
bindings
.write_to_file(out_path.join("bindings.rs"))
.expect("Couldn't write bindings!");
bindings.rs没有defaultparams.h
中的任何内容我必须添加什么到Builder对象中才能在生成的绑定中包含defaultparams.h的功能?例如,我需要coeff_modulus_128()
。
我尝试将std::vector
列入白名单,但是它对生成的绑定没有任何影响。
答案 0 :(得分:2)
通过将.whitelist_function("seal::.*")
添加到build.rs
文件中来解决。由于内联函数未包含在类型中,因此当前配置未将其列入白名单。