在本地使用npm install
(或yarn
)安装依赖项时,内部的任何本机(c ++)库都会自动编译。
但是,在部署到Cloud Functions后,您可能会遇到类似的错误:
Error: *.so: cannot open shared object file
那么如何在Cloud函数中使用它们?
我认为这个问题适用于所有c ++库和节点依赖项,但是我可以向您展示我的特定用例。
我正在尝试在云函数中运行tensorflow.js,但是tfjs-node
软件包包括一个共享库libtensorflow.so
使用yarn
在本地安装会自动运行node-gyp
脚本并编译所需的所有内容。
但是,在部署GCP Cloud函数并调用它之后,会导致错误:
错误:libtensorflow.so:无法打开共享对象文件:没有这样的文件或目录
完整日志存储在this pastebin中。
这里的问题又是:如何编译库并解决错误?