我在OpenCV Node运行示例时收到此错误
return process.dlopen(module, path._makeLong(filename));
^
Error: /home/sunny/face/build/opencv/v5.0.0/Release/node-v46-linux-x64/opencv.node: undefined symbol: _ZNK2cv9Algorithm5writeERNS_11FileStorageE
at Error (native)
at Object.Module._extensions..node (module.js:460:18)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object. (/home/sunny/face/lib/bindings.js:4:15)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
7条答案
按热度按时间ukxgm1gy1#
尝试通过以下方式刷新已安装的模块
我在使用Gulp和node-sass时遇到了与
process.dlopen
相关的错误。清除安装的模块为我解决了这个问题。编辑:不确定OpenCV是如何工作的(或者它实际上是什么),但我认为它处理NodeJS模块类似于常规NodeJS应用程序,您可以在其中刷新模块集合。
i86rm4rw2#
使用此命令,它工作正常:
eqqqjvef3#
您应该检查您的OpenCV安装,它可能丢失/找不到,或者它不是OpenCV节点绑定支持的版本。假设你在npm上使用
opencv
模块,它的自述文件说OpenCV版本从v2.3.1到v3.0.0都(完全)支持。mitkmikd4#
我遇到了同样的问题,结果发现docker运行的是linux,bcrypt是在macOS上创建的,如果你不在docker中运行
npm install
,就会出现某种兼容性问题。对于我来说,添加一个
.dockerignore
文件并添加到项目的node_module
文件夹中,然后在Dockerfile中运行RUN npm install
解决了这个问题。c9x0cxw05#
我的情况下,我有我的
.dockerignore
上的node_modules
但是我仍然需要使
docker-compose
能够忽略node_modules
文件夹。docker-compose
将跳过将为MacOS构建的node_modules
复制到Linux容器中。Add a volume to Docker, but exclude a sub-folder
wqsoz72f6#
我运行了这些命令,但没有成功
唯一对我有帮助的是
最后我的节点模块安装成功。
2mbi3lxu7#
使用此命令,它工作正常:
然后再次使用install命令: