napi-rs 依赖三方lib的一个问题

napi-rs 是一个快速开发node addon 的rust 工具包,很多时候我们可能希望基于rust 开发的node addon, 同时集成三方c 库,此时如果在build script 中,不明确自定构建依赖的三方包那么我们在运行node addon 的时候可能会碰到莫名的问题,解决方法实际比较简单,就是明确指定下依赖的三方包

参考配置

  • build.rs
extern crate napi_build;
fn main() {
  println!("cargo:rustc-link-search=native=./");
  println!("cargo:rustc-link-lib=dylib=easytier_ffi");
  napi_build::setup();
}

说明

此问题是在尝试开发easytier_ffi node addon 时碰到的问题,调试花了不少时间(可以通过ldd, 或者otool)

参考资料

https://rust-lang.github.io/rust-bindgen/non-system-libraries.html

https://doc.rust-lang.org/cargo/reference/build-scripts.html

posted on 2025-08-23 08:00  荣锋亮  阅读(19)  评论(0)    收藏  举报

导航