跳至主要内容

构建说明 (Linux)

请遵循以下指南在 Linux 上构建**Electron 本身**,以创建自定义 Electron 二进制文件。有关使用预构建的 Electron 二进制文件捆绑和分发您的应用程序代码,请参阅应用程序分发指南。

先决条件

  • 至少 25GB 磁盘空间和 8GB 内存。
  • Python >= 3.7。
  • Node.js。安装 Node 有多种方法。您可以从 nodejs.org 下载源代码并编译它。这样做允许您将 Node 安装在您自己的主目录中作为标准用户。或者尝试使用诸如 NodeSource 之类的存储库。
  • clang 3.4 或更高版本。
  • GTK 3 和 libnotify 的开发头文件。

在 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 参数。

例如,如果您在 /usr/local/bin/clang 下安装了 clang

$ gn gen out/Testing --args='import("//electron/build/args/testing.gn") clang_base_path = "/usr/local/bin"'

使用除 clang 之外的编译器

不支持使用除 clang 之外的编译器构建 Electron。