构建说明 (Linux)
以下指南介绍如何在 Linux 上构建 **Electron 本身**,以创建自定义 Electron 二进制文件。有关使用预编译的 Electron 二进制文件打包和分发您的应用代码,请参阅 应用分发 指南。
先决条件
在 Ubuntu >= 20.04 上,安装以下库
$ sudo apt-get install build-essential clang libdbus-1-dev libgtk-3-dev \
libnotify-dev libasound2-dev libcap-dev \
libcups2-dev libxtst-dev \
libxss1 libnss3-dev gcc-multilib g++-multilib curl \
gperf bison python3-dbusmock openjdk-8-jre
在 Ubuntu < 20.04 上,安装以下库
$ sudo apt-get install build-essential clang libdbus-1-dev libgtk-3-dev \
libnotify-dev libgnome-keyring-dev \
libasound2-dev libcap-dev libcups2-dev libxtst-dev \
libxss1 libnss3-dev gcc-multilib g++-multilib curl \
gperf bison python-dbusmock openjdk-8-jre
在 RHEL / CentOS 上,安装以下库
$ sudo yum install clang dbus-devel gtk3-devel libnotify-devel \
libgnome-keyring-devel xorg-x11-server-utils libcap-devel \
cups-devel libXtst-devel alsa-lib-devel libXrandr-devel \
nss-devel python-dbusmock openjdk-8-jre
在 Fedora 上,安装以下库
$ sudo dnf install clang dbus-devel gperf gtk3-devel \
libnotify-devel libgnome-keyring-devel libcap-devel \
cups-devel libXtst-devel alsa-lib-devel libXrandr-devel \
nss-devel python-dbusmock
在 Arch Linux / Manjaro 上,安装以下库
$ sudo pacman -Syu base-devel clang libdbus gtk2 libnotify \
libgnome-keyring alsa-lib libcap libcups libxtst \
libxss nss gcc-multilib curl gperf bison \
python2 python-dbusmock jdk8-openjdk
其他发行版可能通过包管理器(如 pacman)提供类似的安装包。或者,您可以从源代码编译。
交叉编译
如果您想为 arm
目标构建,还应安装以下依赖项
$ sudo apt-get install libc6-dev-armhf-cross linux-libc-dev-armhf-cross \
g++-arm-linux-gnueabihf
同样,对于 arm64
,安装以下内容
$ sudo apt-get install libc6-dev-arm64-cross linux-libc-dev-arm64-cross \
g++-aarch64-linux-gnu
要交叉编译到 arm
或其他目标,您应该将 target_cpu
参数传递给 gn gen
$ gn gen out/Testing --args='import(...) target_cpu="arm"'
构建
请参阅 构建说明:GN
故障排除
加载共享库时出错: libtinfo.so.5
预编译的 clang
会尝试链接到 libtinfo.so.5
。根据主机架构,链接到适当的 libncurses
$ sudo ln -s /usr/lib/libncurses.so.5 /usr/lib/libtinfo.so.5
高级主题
默认构建配置针对主流桌面 Linux 发行版。要为特定发行版或设备构建,以下信息可能对您有所帮助。
使用系统 clang
而非下载的 clang
二进制文件
默认情况下,Electron 使用 Chromium 项目提供的预编译 clang
二进制文件进行构建。如果出于某种原因您想使用系统中安装的 clang
进行构建,可以在 GN 参数中指定 clang_base_path
参数。
例如,如果您将 clang
安装在 /usr/local/bin/clang
下
$ gn gen out/Testing --args='import("//electron/build/args/testing.gn") clang_base_path = "/usr/local/bin"'
使用 clang
以外的编译器
不支持使用 clang
以外的编译器构建 Electron。