如何使用电子生成器在运行Ubuntu MATE的ARM64 Raspberry Pi 3的AMD64机器上编译本机模块?

时间:2019-04-22 13:10:37

标签: ubuntu raspberry-pi electron raspberry-pi3 electron-builder

我目前正在构建一个打算在Raspberry Pi 3 B +上运行的Electron应用程序,该Raspberry Pi 3 B +在arm64架构上运行Ubuntu MATE。为了加快开发速度,我正在使用同时运行Ubuntu MATE的虚拟机编写代码。使用electron-builder,我可以为arm64编译应用程序,并且可以在pi上很好地运行。

一旦引入onoff库来访问GPIO,就会遇到我遇到的问题。构建仍然成功,并且应用程序在虚拟机上运行,​​尽管有一条错误消息指出它无法访问引脚(这是我所期望的,因为虚拟盒没有实际的GPIO)。

Onoff error on virtual box

尽管在Pi上,该应用程序启动了一些进程,但未打开。如果我使用命令行运行应用程序,则会出现以下错误:

A JavaScript error occurred in the main process
Uncaught Exception:
Error: /tmp/.org.chromium.Chromium.h1PhHe: cannot open shared object file: No such file or directory
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:160:31)
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:722:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:169:18)
    at Module.load (internal/modules/cjs/loader.js:602:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:541:12)
    at Function.Module._load (internal/modules/cjs/loader.js:533:3)
    at Module.require (internal/modules/cjs/loader.js:640:17)
    at require (internal/modules/cjs/helpers.js:20:18)
    at bindings (/opt/Fllipper Plate Viewer/resources/app.asar/node_modules/bindings/bindings.js:112:48)
    at module.exports (/opt/Fllipper Plate Viewer/resources/app.asar/node_modules/epoll/epoll.js:5:31)

我尝试将buildDependenciesFromSource设置为true,但似乎没有任何改变。我也使用过electron-rebuild。我还尝试将epoll(由onoff使用)添加为我自己的应用程序的直接依赖项。

我对electron-webpackelectron-builder的配置:

"electronWebpack": {
  "whiteListedModules": [
    "electron-json-storage"
  ]
},
"build": {
  "appId": "com.electron.fllipper-plate-viewer",
  "productName": "Fllipper Plate Viewer",
  "directories": {
    "output": "build",
    "buildResources": "assets"
  },
  "linux": {
    "category": "Utility",
    "target": [
      {
        "target": "deb",
        "arch": [
          "x64",
          "arm64"
        ]
      }
    ]
  }
}

我猜想在使用electron-builder时会缺少一些东西,当针对特定的芯片体系结构时,它如何重建epoll之类的本地依赖项?也许我对electron-webpackwebpack总体上如何处理外部情况做出了错误的假设?

0 个答案:

没有答案