Electron

构建说明(Linux) | Build Instructions (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上,安装以下库:

$ 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上,安装以下库:

$ 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上,安装以下库:

$ 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)提供类似的安装包。或者可以从源代码编译。

获取代码

$ git clone https://github.com/electron/electron

引导

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

$ cd electron $ ./script/bootstrap.py --verbose

交叉编译

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

$ sudo apt-get install libc6-dev-armhf-cross linux-libc-dev-armhf-cross \ g++-arm-linux-gnueabihf

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

$ ./script/bootstrap.py -v --target_arch=arm

构建

如果你想建立既ReleaseDebug目标:

$ ./script/build.py

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

$ ./script/create-dist.py

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

您也可以Debug只构建目标:

$ ./script/build.py -c D

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

清除

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

$ npm run clean

仅清理outdist目录:

$ npm run clean-build

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

故障排除

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

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

$ sudo ln -s /usr/lib/libncurses.so.5 /usr/lib/libtinfo.so.5

测试

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

高级主题

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

构建局部libchromiumcontent

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

  • 获取GIT子模块:

$ git submodule update --init --recursive

  • 复制.gclient配置文件$ cp vendor / libchromiumcontent / .gclient。

  • --build_libchromiumcontent开关传递给bootstrap.py脚本:

$ ./script/bootstrap.py -v --build_libchromiumcontent

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

$ ./script/build.py -c R

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

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

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

$ ./script/bootstrap.py -v --build_libchromiumcontent --clang_dir /usr/local $ ./script/build.py -c R

使用以外的编译器 clang

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

例如使用GCC工具链构建:

$ 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脚本中不起作用。