0

我有一个名为“Main”的可执行文件,我想在 heroku 上的节点应用程序中运行它。为此,我使用此功能

function run(code, params) {
  const { execFileSync } = require('child_process');
  const child = execFileSync('/app/Main', params ? [code, params] : [code], {
    timeout: timeout * 1000,
    cwd: __dirname,
    stdio: 'pipe',
  })
  if (child.status === null) {
    return `child status null`
  }
  return child.stdout.toString()
}

但它给了我这个错误。

./Main: error while loading shared libraries: libffi.so.6: cannot open shared object file: No such file or directory

我运行时也收到此错误

heroku run bash -a "appname"

然后尝试

./Main

有没有办法解决这个问题?根据我的经验,heroku 文件系统非常受限,并且主要是只读访问。我可以用 .profile 或类似的东西以某种方式将旧版本卷曲到正确的位置吗?

4

1 回答 1

0

I figured it out. I had to compile the binary file from a ubuntu version that uses libffi7 not libffi6 and also load libffi7 in an .Aptfile at the root directory for heroku

于 2021-11-28T21:45:02.083 回答