跳到主要內容

建置說明 (Linux)

請依照以下指南在 Linux 上建置 Electron 本身,以建立自訂的 Electron 二進位檔。若要使用預先建置的 Electron 二進位檔來捆綁和發佈您的應用程式碼,請參閱應用程式發佈指南。

先決條件

  • 至少 25GB 磁碟空間和 8GB RAM。
  • 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 引數。

例如,如果您將 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。