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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM