首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

构建说明(Linux) | Build Instructions (Linux)

遵循以下指导原则在Linux上构建Electron。

先决条件

  • 至少25GB磁盘空间和8GB RAM。
  • Python 2.7.x. 像CentOS 6.x这样的发行版仍然使用Python 2.6.x,因此您可能需要使用Python来检查您的Python版本python -V
  • Node.js的 有多种方法可以安装Node。您可以从nodejs.org下载源代码并编译它。这样做可以允许将Node作为标准用户安装在您自己的主目录中。或者尝试使用诸如NodeSource之类的存储库。

clang3.4或更高。

  • GTK +和libnotify的开发标题。

在Ubuntu上,安装以下库:

代码语言:javascript
复制
$ sudo apt-get install build-essential clang libdbus-1-dev libgtk2.0-dev \
                       libnotify-dev libgnome-keyring-dev libgconf2-dev \
                       libasound2-dev libcap-dev libcups2-dev libxtst-dev \
                       libxss1 libnss3-dev gcc-multilib g++-multilib curl \
                       gperf bison

在RHEL/CentOS上,安装以下库:

代码语言:javascript
复制
$ sudo yum install clang dbus-devel gtk2-devel libnotify-devel \
                   libgnome-keyring-devel xorg-x11-server-utils libcap-devel \
                   cups-devel libXtst-devel alsa-lib-devel libXrandr-devel \
                   GConf2-devel nss-devel

在Fedora上,安装以下库:

代码语言:javascript
复制
$ sudo dnf install clang dbus-devel gtk2-devel libnotify-devel \
                   libgnome-keyring-devel xorg-x11-server-utils libcap-devel \
                   cups-devel libXtst-devel alsa-lib-devel libXrandr-devel \
                   GConf2-devel nss-devel

其他发行版可以通过软件包管理器(如pacman)提供类似的安装包。或者可以从源代码编译。

获取代码

代码语言:javascript
复制
$ git clone https://github.com/electron/electron

引导

引导脚本将下载所有必要的构建依赖项并创建构建项目文件。您必须拥有Python 2.7.x才能使脚本成功。下载某些文件可能需要很长时间。请注意,我们正在使用ninja构建Electron,因此没有Makefile生成。

代码语言:javascript
复制
$ cd electron
$ ./script/bootstrap.py --verbose

交叉编译

如果您想为arm目标构建,您还应该安装以下依赖项:

代码语言:javascript
复制
$ sudo apt-get install libc6-dev-armhf-cross linux-libc-dev-armhf-cross \
                       g++-arm-linux-gnueabihf

为了交叉编译armia32目标,您应该将--target_arch参数传递给bootstrap.py脚本:

代码语言:javascript
复制
$ ./script/bootstrap.py -v --target_arch=arm

构建

如果你想建立既ReleaseDebug目标:

代码语言:javascript
复制
$ ./script/build.py

这个脚本将会在目录中放置一个非常大的Electron可执行文件out/R。文件大小超过了1.3千兆字节。这是因为Release目标二进制文件包含调试符号。要减小文件大小,请运行create-dist.py脚本:

代码语言:javascript
复制
$ ./script/create-dist.py

这将使dist目录中的文件大小更小的工作分配。运行create-dist.py脚本之后,您可能需要删除仍在其中的1.3+千兆字节二进制文件out/R

您也可以Debug只构建目标:

代码语言:javascript
复制
$ ./script/build.py -c D

构建完成后,您可以electron在下找到调试二进制文件out/D

清除

若要清除生成文件,请执行以下操作:

代码语言:javascript
复制
$ npm run clean

仅清理outdist目录:

代码语言:javascript
复制
$ npm run clean-build

注意:这两个clean命令都需要bootstrap在构建之前再次运行。

故障排除

加载共享库时出错:libtinfo.so.5

预编译clang将尝试链接到libtinfo.so.5。取决于主机体系结构,符号链接适当的libncurses

代码语言:javascript
复制
$ sudo ln -s /usr/lib/libncurses.so.5 /usr/lib/libtinfo.so.5

测试

请参阅构建系统概述:测试

高级主题

默认的构建配置是针对主要桌面Linux发行版的。要为特定分配或设备构建,以下信息可能对您有所帮助。

构建局部libchromiumcontent

为避免使用预编译的二进制文件libchromiumcontent,您可以libchromiumcontent在本地构建。要这样做,请按照下列步骤操作:

  1. 获取GIT子模块:
代码语言:javascript
复制
$ git submodule update --init --recursive
  1. 复制.gclient配置文件$ cp vendor / libchromiumcontent / .gclient。
  1. --build_libchromiumcontent开关传递给bootstrap.py脚本:
代码语言:javascript
复制
$ ./script/bootstrap.py -v --build_libchromiumcontent

请注意,默认情况下,shared_library配置不是内置的,所以Release如果您使用此模式,则只能构建Electron版本:

代码语言:javascript
复制
$ ./script/build.py -c R

使用系统clang而不是下载的clang二进制文件

默认情况下,Electron clang由Chromium项目提供的预建二进制文件构建。如果由于某种原因想要使用clang系统中安装的内容进行构建,则可以bootstrap.py使用--clang_dir=<path>交换机进行调用。通过传递构建脚本将假定clang二进制文件驻留在中<path>/bin/

例如,如果您安装clang/user/local/bin/clang

代码语言:javascript
复制
$ ./script/bootstrap.py -v --build_libchromiumcontent --clang_dir /usr/local
$ ./script/build.py -c R

使用以外的编译器 clang

为了与像编译器构建Electrong++,你首先需要禁用clang--disable_clang第一开关,然后设置CCCXX环境变量到你想要的人。

例如使用GCC工具链构建:

代码语言:javascript
复制
$ env CC=gcc CXX=g++ ./script/bootstrap.py -v --build_libchromiumcontent --disable_clang
$ ./script/build.py -c R

环境变量

CC和之外CXX,您还可以设置以下环境变量来自定义建筑配置:

  • CPPFLAGS
  • CPPFLAGS_host
  • CFLAGS
  • CFLAGS_host
  • CXXFLAGS
  • CXXFLAGS_host
  • AR
  • AR_host
  • CC
  • CC_host
  • CXX
  • CXX_host
  • LDFLAGS

在执行bootstrap.py脚本时必须设置环境变量,但在build.py脚本中不起作用。

扫码关注腾讯云开发者

领取腾讯云代金券