• 构建步骤(Linux)
    • 基本要求
      • 交叉编译
    • 构建
    • 故障排查
      • 加载共享库时出现错误: libtinfo.so.5
    • 高级提示
      • 使用系统提供的 clang 替换下载的 clang 二进制文件
      • 使用 clang 之外的其它编译器

    构建步骤(Linux)

    遵循下面的步骤,在 Linux 上构建 Electron.

    基本要求

    • 至少 25GB 硬盘空间 和 8GB 内存.

    • Python 2.7.x. 一些发行版如 CentOS 6.x 仍然使用 Python 2.6.x ,所以或许需要 check 你的 Python 版本,使用 python -V.

      请确保您的系统和Python的版本至少支持TLS 1.2。 您可以运行下面这个脚本来测试:

    1. $ npm run check-tls

    如果脚本反映你的设置使用过时的安全协议,请用系统的软件包管理器更新Python在2.7.x中的最高版本。 或者,您也可以访问ttps://www.python.org/downloads/,以获取更加详细的指导信息。

    • Node.js. 有多种方法安装 Node.js。 您可以从 Nodejs.org 下载源代码并进行编译。 也可以作为一个标准的用户在 home 目录下安装 node. 或者尝试使用 NodeSource 仓库

    • clang 3.4 或更高版本。

    • GTK+ 开发头文件和 libnotify.

    在 Ubuntu, 安装下面的库:

    1. sudo apt-get install build-essential clang libdbus-1-dev libgtk-3-dev \
    2. libnotify-dev libgnome-keyring-dev libgconf2-dev \
    3. libasound2-dev libcap-dev libcups2-dev libxtst-dev \
    4. libxss1 libnss3-dev gcc-multilib g++-multilib curl \
    5. gperf bison python-dbusmock

    在 RHEL / CentOS, 安装下面的库:

    1. sudo yum install clang dbus-devel gtk3-devel libnotify-devel \
    2. libgnome-keyring-devel xorg-x11-server-utils libcap-devel \
    3. cups-devel libXtst-devel alsa-lib-devel libXrandr-devel \
    4. GConf2-devel nss-devel python-dbusmock

    在 Fedora, 安装下面的库:

    1. sudo dnf install clang dbus-devel gtk3-devel libnotify-devel \
    2. libgnome-keyring-devel xorg-x11-server-utils libcap-devel \
    3. cups-devel libXtst-devel alsa-lib-devel libXrandr-devel \
    4. GConf2-devel nss-devel python-dbusmock

    其它版本通过包管理器也可能提供了相似的包来安装,例如 pacman. 或一个可以编译的源文件.

    交叉编译

    如果想创建一个 arm target ,应当还要下载下面的依赖:

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

    类似地,对于 arm64 平台,请安装下列内容:

    1. $ sudo apt-get install libc6-dev-arm64-cross linux-libc-dev-arm64-cross \
    2. g++-aarch64-linux-gnu

    若要为 armia32 平台的目标设备交叉编译,您应当为 target_cpu 添加gn gen 参数:

    1. gn gen out/Debug --args='import(...) target_cpu="arm"'

    构建

    参照Build Instructions: GN

    故障排查

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

    预构建的 clang 会尝试链接到 libtinfo.so.5. 取决于 host 架构, 适当的使用 libncurses:

    1. $ 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下:

    1. gn gen out/Debug --args='import("//electron/build/args/debug.gn") clang_base_path = "/usr/local/bin"'

    使用 clang 之外的其它编译器

    Electron 不支持除 clang之外的其他编译器构建