Как найти заголовок Oracle "oci.h", когда я использую Bindgen в системе Windows?
Я пытался использовать bindgen
автоматически генерировать привязки Rust FFI к библиотекам C и C++ для привязок OCI для базы данных Oracle.
Я следовал за bindgen
Руководство пользователя, и я сделал это так:
extern crate bindgen;
use std::env;
use std::path::PathBuf;
fn main() {
println!("cargo:rustc-link-search={}", "E:\\Rust\\instantclient_11_2\\sdk\\lib\\msvc");
let bindings = bindgen::Builder::default()
.header("wrapper.h")
.clang_arg("-I/E:\\Rust\\instantclient_11_2\\sdk\\include")
.generate()
.expect("Unable to generate to bindings");
let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
bindings.write_to_file(out_path.join("oci.rs"))
.expect("Couldn't write bindings");
}
Мой путь клиента Oracle SDK E:/Rust/instantclient_11_2
и активный набор инструментов nightly-x86_64-pc-windows-msvc
wrapper.h
файл:
#include <oci.h>
Когда я бегу cargo build
Я получаю следующую ошибку:
Compiling test_bindgen v0.1.0 (file:///E:/Rust/test_bindgen)
error: failed to run custom build command for `test_bindgen v0.1.0 (file:///E:/Rust/test_bindgen)`
process didn't exit successfully: `E:\Rust\test_bindgen\target\debug\build\test_bindgen-67bec61306f8f8d4\build-script-build` (ex
it code: 101)
--- stdout
cargo:rustc-link-search=E:\Rust\instantclient_11_2\sdk\lib\msvc
wrapper.h:1:10: fatal error: 'oci.h' file not found, err: true
--- stderr
wrapper.h:1:10: fatal error: 'oci.h' file not found
thread 'main' panicked at 'Unable to generate to bindings: ()', src\libcore\result.rs:906:4
note: Run with `RUST_BACKTRACE=1` for a backtrace.
Если я выполню ту же операцию в Ubuntu 16.04, она будет успешной, но я не знаю, как это сделать в системе Windows.