构建说明(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
为了交叉编译arm
或ia32
目标,您应该将--target_arch
参数传递给bootstrap.py
脚本:
$ ./script/bootstrap.py -v --target_arch=arm
构建
如果你想建立既Release
与Debug
目标:
$ ./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
仅清理out
和dist
目录:
$ 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
第一开关,然后设置CC
和CXX
环境变量到你想要的人。
例如使用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
脚本中不起作用。