Electron 里怎么正确使用 native 模块?重编译后还是报错怎么办?
我用 Electron 做了个桌面应用,需要调用一个用 C++ 写的 native 模块(通过 node-gyp 编译的)。之前在纯 Node 环境下跑得好好的,但集成到 Electron 后一直报 Module did not self-register。
查了文档说要针对 Electron 的 ABI 版本重新编译,我也用了 electron-rebuild 试了,命令是 electron-rebuild -v 25.0.0,但启动时还是崩溃。是不是我漏了什么配置?我的模块入口是这样写的:
const myNativeAddon = require('bindings')('my_native_module');
// 调用方法时报错
myNativeAddon.doSomething();
程序猿佳沫
Lv1
我之前也踩过这个坑,Electron 的 ABI 版本确实容易出问题。你先确认 electron-rebuild 是在正确环境下运行的,试试加个 --force 参数重编译:electron-rebuild -v 25.0.0 --force。如果还不行,检查下你的 binding.gyp 文件里 target_name 要和 package.json 里的 name 一致,不然会找不到模块。
点赞
2026-03-30 02:01