ffi-rs库使用问题:node-loader报错找不到.node文件

187 阅读1分钟

1. 问题背景

.node文件一般是通过类似node-gyp等工具对编写的 C/C++ 代码进行编译生成的二进制模块,.node文件能够被 Node.js 环境加载并调用其中导出的方法。 在Electron项目中,可以使用.node文件集成 C/C++ 的能力,提升性能。个人项目中使用到了ffi-rs库,这个库的性能相比于ffi-napi来说有了质的提升,五星推荐!

但使用过程中,打包后加载ffi-rs编译的.node文件时出现了下图的报错。

image.png

2. 问题定位

尝试了几台windows电脑后发现,大部分电脑可以正常加载没有报错,只有少数电脑存在该问题。而对比报错中的文件路径,该路径下也是存在对应的.node文件的,因此找不到模块跟文件路径没有关系。此时,猜想是windows操作系统层面的问题,缺少某些dll文件,于是使用Dependency Walker软件对报错的.node文件进行检查,果然发现了系统级dll文件的缺失。 image.png

最后,下载了缺失的dll文件并放到Electron项目的exe文件同级目录下,圆满解决问题~