• ubuntu electron chromium linux 交叉编译arm版本


    参考:

    • https://www.electronjs.org/docs/development/build-instructions-linux#%E4%BA%A4%E5%8F%89%E7%BC%96%E8%AF%91
    • https://chromium.googlesource.com/chromium/src/+/master/docs/linux/chromium_arm.md

    在x86机器上linux编译通过。

    0,安装(预先安装两步骤非常重要,保证要安装成功!,electron文档没有提及,害得我编译走弯路!!!):

    在src下运行:
    $ ./build/install-build-deps.sh --no-chromeos-fonts 可以略去安装些没用的

    ./build/linux/sysroot_scripts/install-sysroot.py --arch=arm
    以下是electron文档要求的:
    $ sudo apt-get install libc6-dev-armhf-cross linux-libc-dev-armhf-cross g++-arm-linux-gnueabihf

    1,修改或者自建: ~/.electron_build_tools/configs/evm.electron9-on-arm.json

    {
      "goma": "none",
      "root": "/home/a/dev0/e9.2.1",
      "remotes": {
        "electron": {
          "origin": "git@github.com:electron/electron.git"
        },
        "node": {
          "origin": "git@github.com:electron/node.git"
        }
      },
      "gen": {
        "args": [
          "import("//electron/build/args/release_sym0.gn") target_cpu="arm" "
        ],
        "out": "ReleaseSym0"
      },
      "env": {
        "CHROMIUM_BUILDTOOLS_PATH": "/home/a/dev0/e9.2.1/src/buildtools",
        "GIT_CACHE_PATH": "/home/a/dev0/cacheForElectron/git_cache"
      }
    }

    2,如果出错,这就是由于前面第0步没做。:

    e build
    electron
    Running "/home/a/.electron_build_tools/third_party/depot_tools/gn gen out/ReleaseSym0 --args=import("//electron/build/args/release_sym0.gn") target_cpu="arm" " in /home/a/dev0/e9.2.1/src
    ERROR at //build/config/sysroot.gni:64:7: Assertion failed.
          assert(
          ^-----
    Missing sysroot (//build/linux/debian_sid_arm-sysroot). To fix, run: build/linux/sysroot_scripts/install-sysroot.py --arch=arm
    See //build/config/sysroot.gni:65:11: 
              exec_script("//build/dir_exists.py",
              ^-----------------------------------
    This is where it was set.
    See //chrome/installer/BUILD.gn:7:1: whence it was imported.
    import("//build/config/sysroot.gni")
    ^----------------------------------
    See //BUILD.gn:73:5: which caused the file to be included.
        "//chrome/installer",
        ^-------------------
    ERROR Error: Command failed: /home/a/.electron_build_tools/third_party/depot_tools/gn gen out/ReleaseSym0 --args=import("//electron/build/args/release_sym0.gn") target_cpu="arm" 
        at checkExecSyncError (child_process.js:630:11)
        at Object.execFileSync (child_process.js:648:15)
        at Object.depotExecFileSync [as execFileSync] (/home/a/.electron_build_tools/src/utils/depot-tools.js:106:16)
        at runGNGen (/home/a/.electron_build_tools/src/e-build.js:20:9)
        at ensureGNGen (/home/a/.electron_build_tools/src/e-build.js:45:41)
        at runNinja (/home/a/.electron_build_tools/src/e-build.js:90:3)
        at Object.<anonymous> (/home/a/.electron_build_tools/src/e-build.js:160:3)
        at Module._compile (internal/modules/cjs/loader.js:1138:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
        at Module.load (internal/modules/cjs/loader.js:986:32)

    执行下面解决:

    @ubuntu:~/dev0/e9.2.1/src$ build/linux/sysroot_scripts/install-sysroot.py --arch=arm
    Installing Debian sid arm root image: /home/a/dev0/e9.2.1/src/build/linux/debian_sid_arm-sysroot
    Downloading http://s3.amazonaws.com/electronjs-sysroots/toolchain/074ad35a3ef1425244ebb04568cd8ea14bf6c9ae/debian_sid_arm_sysroot.tar.xz
  • 相关阅读:
    [resource]23个python的机器学习包
    [resource]Python机器学习库
    [resource-]Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
    过滤垃圾评论
    IIS Express start introduction and applicationHost modification
    [algothrim] url pattern mining within same domain site
    API网关的优缺点
    API网关特性
    部署到IIS的两种方式
    .Net Core有三种部署方式
  • 原文地址:https://www.cnblogs.com/bigben0123/p/14545068.html
Copyright © 2020-2023  润新知