Spec-Zone.ru › Electron

Инструкции по сборке (Linux)

Следуйте приведенным ниже рекомендациям для сборки Electron на Linux с целью создания собственных библиотек Electron. Для объединения и распространения кода вашего приложения с предварительно собранными бинарниками Electron см. руководство по распространению приложений.

Предварительные условия​

  • Не менее 25 ГБ дискового пространства и 8 ГБ оперативной памяти.
  • Python >= 3.7.
  • Node.js. Существует несколько способов установки Node.js. Вы можете скачать исходный код с 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 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

В 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 собирается с предварительно собранными clang бинарниками, предоставленными проектом Chromium. Если по какой-либо причине вы хотите скомпилировать с clang установленным в вашей системе, вы можете указать аргумент clang_base_path в аргументах GN.

Например, если вы установили clang в /usr/local/bin/clang:

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

Использование компиляторов, отличных от clang​

Сборка Electron с компиляторами, отличными от clang, не поддерживается.

© GitHub Inc.
Licensed under the MIT license.
https://www.electronjs.org/docs/latest/development/build-instructions-linux

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API