当前位置:   article > 正文

ubuntu20.04源码交叉编译electron,在arm+centos(银河麒麟v10等)系统中使用,适应pagesize:65535_electron 交叉编译

electron 交叉编译

一、拉取源码部分

官网文档:构建说明 | Electron

VPN代理购买及配置

个人购买链接是首页

ubuntu下的代理配置:https://portal.shadowsocks.nz/knowledgebase/185/Windows-or-macOS-or-LinuxClashy-设置方法.html

另外配置系统代理:

附件为git以及npm以及yarn的配置

.gitconfig为git的基本配置,不一定完全合理,但是我是这样配置的,最后拉取成功了

.npmrc为npm的基本配置;.yarnrc为yarn的基本配置。都配置为国内镜像

  1. .gitconfig
  2. [https]
  3. proxy = socks5://127.0.0.1:7891
  4. [http]
  5. proxy = socks5://127.0.0.1:7891
  6. sslVerify = false
  7. [user]
  8. name = xxxxxxxxx
  9. email = xxxxxxxxx
  10. [core]
  11. compression = 0
  12. [pack]
  13. deltaCacheSize = 2047m
  14. packSizeLimit = 2047m
  15. windowMemory = 2047m
  16. .npmrc
  17. registry "https://registry.npm.taobao.org"
  18. sass_binary_site "https://npm.taobao.org/mirrors/node-sass/"
  19. phantomjs_cdnurl "http://cnpmjs.org/downloads"
  20. electron_mirror "https://npm.taobao.org/mirrors/electron/"
  21. sqlite3_binary_host_mirror "https://foxgis.oss-cn-shanghai.aliyuncs.com/"
  22. profiler_binary_host_mirror "https://npm.taobao.org/mirrors/node-inspector/"
  23. chromedriver_cdnurl "https://cdn.npm.taobao.org/dist/chromedriver"
  24. .yarnrc
  25. # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
  26. # yarn lockfile v1
  27. registry "https://registry.npm.taobao.org"
  28. chromedriver_cdnurl "https://cdn.npm.taobao.org/dist/chromedriver"
  29. electron_mirror "https://npm.taobao.org/mirrors/electron/"
  30. lastUpdateCheck 1645151377004
  31. phantomjs_cdnurl "http://cnpmjs.org/downloads"
  32. profiler_binary_host_mirror "https://npm.taobao.org/mirrors/node-inspector/"
  33. sass_binary_site "https://npm.taobao.org/mirrors/node-sass/"
  34. sqlite3_binary_host_mirror "https://foxgis.oss-cn-shanghai.aliyuncs.com/"

拉源码过程中相关报错

报错1: ssl相关报错可以尝试设置

 

 

报错2: canot find。。。,如下图: 

原因及解决办法:使用官网最新的depot_tools,困扰了我两天,我使用的是自己很早以前csdn下载的。

报错3: no such file or directory “npx”或“python”

原因及解决办法:本地nodejs仅npm和node设置了软连接,npx未配置,配置即可。python的话是因为我的ubuntu中为python2和python3,我将python3复制了一个命名为python。

报错4: cannot access https://githubzzzzzzzz。。t

原因及解决办法:git config —global sslVerify “false”

问题5: 卡在building fresh packages不动

解决办法:配置yarn与npm的国内镜像源。参考[转]解决yarn install一直卡在Building fresh packages - 简书

拉完代码之后切换分支:

在 src/electron 目录下执行: $git checkout v12.2.3

在 src 目录下执行:$gclient sync会将相关代码全部同步到该版本对应的版本

及时做好快照是很重要的。

总结:

  • vpn还是要给力,不然总是失败,晚上貌似能好一点。
  • 电脑性能一定要好,无论是cpu还是内存,不然卡到爆

二.交叉编译之源码修改 

   官方代码理论上在arm64机器不管其pagesize是4k、16k、64k,均是可以编译成功的,因为源码是通过接口去获取这个参数,但我们在交叉编译时所用的机器和实际需要运行的机器pagesize参数不一定一致。比如本次我们要适配的就是arm+银河麒麟v10,该系统的内核参数pagesize为65536。查看pagesize的命令:getconf PAGESIZE。

修改点:

**文件1:**electron/src/v8/src/base/platform/platform-posix.cc 

 文件2:electron/src/v8/src/base/sys-info.cc

 

**文件3~n:**全局搜索(我好像总共搜索了三十来个文件,共34处,耐心一点,一不小心就放弃了)

vscode打开electron源码,搜索sysconf(_SC_PAGESIZE),找到之后将其全部替换为目标pagesize,我这里全部修改为了65535.

注意:修改的时候能注释就全注释掉,不要有声明但未使用的变量,否则也会导致编译中断。

 三.交叉编译配置及编译

  1. $ cd src
  2. // 相关编译工具
  3. $ export PATH=/home/dev/depot_tools:$PATH
  4. $ export CHROMIUM_BUILDTOOLS_PATH=`pwd`/buildtools
  5. // 编译参数
  6. $ gn gen out/Release --args=’import("//electron/build/args/release.gn") target_cpu="arm64"
  7. //编译
  8. $ ninja -C out/Release electron
  9. // LINK这一步非常之久,耐心等待即可。
  10. // test
  11. $ ./electron 即可弹出electron窗体
  12. //打包
  13. $ ninja -C out/Release electron:electron_dist_zip

 

四、完整源码编译环境

本人有配置好所有环境以及源码拉去完毕的electron交叉编译环境(ubuntu20.04),有需要的可以联系:291540704@qq.com

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/246696
推荐阅读
相关标签
  

闽ICP备14008679号