Как собрать основную ветку Emacs (она же транк) в MS-Windows

11

Сегодня я сделал решительный шаг и начал поиски самой последней сборки для главного ветки Emacs - так называемой Emacs Trunk - для MS-Windows.

Я нашел старый блог и прошел процедуру, только чтобы получить сообщение об ошибке, сообщающее, что конкретный метод больше не поддерживается. Сообщение об ошибке называют меня следующим образом: .../emacs/nt/INSTALL. Что ж, это нормально, если инфраструктура для сборки Emacs уже установлена ​​/ настроена.

Это было бы удобно, если бы существовал шаг 1, 2, 3, который описывает, какие инструменты необходимы и как их установить / настроить, ориентируясь на сборку Emacs в MS-Windows.

Если кто-то захочет подготовить подробное описание, пожалуйста, оставьте ответ. Если нет, я сам напишу один раз, когда выясню, как это сделать. Я был встречен с дополнительными препятствиями и тем временем представил отчет об ошибке - я еще не знаю, это я или, возможно, ошибка: https://debbugs.gnu.org/cgi/bugreport.cgi? ошибка = 21582

Я думаю, что больше людей были бы склонны создавать свои собственные Emacs, если бы существовал «шпаргалка», которую могли бы использовать начинающие программисты или любители, такие как я (которые по профессии не программисты).

lawlist
источник
Я думаю, что вы можете создавать Emacs для Windows более чем одним способом (т.е., скорее всего, MingW / MS VCC, но также, возможно, и лязгом. Вы можете посмотреть здесь список необходимых библиотек (их много) emacswiki.org/emacs / BuildingEmacsWithMinGW, но эта информация наверняка датирована (скорее всего десять лет или около того!)
wvxvw
Для 64-битной сборки есть хорошая запись от emacsbinw64 по адресу sourceforge.net/p/emacsbinw64/wiki/… - она ​​использует MSYS2 и MinGW-w64. Может быть, примечания nt / INSTALL должны быть обновлены, чтобы включить эту опцию?
Брайан Бернс
@ bburns.km - спасибо за ссылку. Мне было интересно, как собрать 64-битную версию, но у меня не было свободного времени, чтобы потратить бесчисленные часы, чтобы понять это. В будущем я обязательно проверю ссылку, чтобы увидеть, является ли это чем-то, что является шагом 1, 2, 3, или просто схемой, где опытные программисты знают, как заполнить пропущенные пропуски. Такие инструкции, как nt / INSTALL, в основном бесполезны для новичка, такого как я, - они значимы для программиста, но для меня они практически ничего не значат, в то время как мои 5 простых шагов - действительно 1, 2, 3, что любой может следовать.
юрист
@lawlist Да, это хорошая рецензия - год или два назад я пытался сделать 32-битную сборку, но что-то пошло не так, и / или я заблудился - как вы говорите, это довольно сложно для кого-то, кто не привык строить вещи из исходного кода. Но инструкции emacsbinw64 немного проще и работают довольно хорошо - всего несколько часов, чтобы пройти все это и заставить его работать. Я думаю, что я спрошу в devlist об обновлении документа nt / INSTALL - там могут быть 32-битные и 64-битные разделы. Я начал писать документ, но понял, что он не слишком много добавляет к инструкциям emacsbinw64, но его можно использовать там.
Брайан Бернс

Ответы:

9

Пользователям рекомендуется прочитать все ../emacs/nt/INSTALLсодержимое исходного кода Emacs.


Быстрый старт - 5 простых шагов :

Этот ответ был протестирован на WindowsXP - SP3. Пути установки должны быть скорректированы в зависимости от индивидуальных предпочтений пользователя. В этом примере:

  • Рабочий стол это: C:\Documents and Settings\lawlist\Desktop

  • gitУстановка: C:\git

  • MinGWУстановка: C:\mingw

  • Расположение для загрузки git главной ветки Emacs: C:\Documents and Settings\lawlist\Desktop\emacs

  • Цель для установки Emacs: C:\Documents and Settings\lawlist\Desktop\trunk

Шаг № 1 : Установите gitи обязательно выберите «оформить заказ как есть, зафиксировать как есть» во время установки:

https://git-scm.com/download/win

Гит-2.5.3-32-bit.exe

Запустите установщик.

следующий

следующий

Стандартный каталог установки есть C:\Program Files\Git, но я выбрал вместо этого: c:\git

Выберите компоненты: по умолчанию все в порядке, но я ничего не выбрал.

Выберите папку меню «Пуск»: по умолчанию все в порядке, но я решил не создавать папку.

Настройка среды PATH: по умолчанию все в порядке: используйте Git только из Bash.

;; В этом следующем разделе обратите особое внимание на настройку не по умолчанию - см. Emacs bug # 21582.

Сконфигурируйте конечные преобразования строки: Emacs требует нестандартного параметра «оформить как есть, зафиксировать как есть»

Настройка эмулятора терминала для использования с Git Bash: по умолчанию все в порядке: используйте MinTTY (терминал по умолчанию для MSys2)

Настройка экспериментальных настроек производительности: я выбрал НЕ «Включить кэширование файловой системы».

Готово [см. Примечания к выпуску при желании]

ПРИМЕЧАНИЕ. autogen.sh(И, возможно, некоторые сторонние программы) требуют, чтобы значение gitPATH было установлено так, чтобы исполняемый файл (ы) можно было вызывать без использования абсолютного пути. Автор этого ответа имеет личное предпочтение использовать абсолютные пути и не изменять PATH; однако большинство людей предпочитают модифицировать PATH для текущих и будущих сессий. Например, в Windows XP значение PATH можно задать с помощью панели управления / «Свойства системы» / «Дополнительно» / кнопки «Переменные среды», и существует два (2) представления / мнения относительно того, должен ли пользователь устанавливать переменные пользователя или систему. Переменные - пути разделяются точкой с запятой без пробелов. Этот ответ просто устанавливает PATH для продолжительности сеанса с использованием exportизложенного ниже. Emacs autogen.shищетgit Команда на PATH и жалуется, если не может быть найден.

Шаг № 2 : установкаMinGW

http://www.mingw.org/wiki/Getting_Started

MinGW-Get-setup.exe

c:\mingw\bin\mingw-get install mingw32-base

c:\mingw\bin\mingw-get install msys-base

c:\mingw\bin\mingw-get install autoconf

c:\mingw\bin\mingw-get install automake

c:\mingw\bin\mingw-get install msys-coreutils

c:\mingw\bin\mingw-get remove mingw32-libiconv

c:\mingw\bin\mingw-get install "libiconv=1.13.1-1"

c:\mingw\msys\1.0\msys.bat

mount c:/mingw /mingw

Шаг № 3 : Загрузите следующие ezwinportszip-пакеты и распакуйте их в корневой mingwкаталог.

https://sourceforge.net/projects/ezwinports/files/

;; разархивируйте все следующие пакеты ezwinports c:/mingw, перезаписав все дубликаты.

cairo-1.12.16-w32-bin.zip

gdk-pixbuf-2.30.2-w32-bin.zip

giflib-5.1.0-w32-bin.zip

glib-2.38.2-w32-bin.zip

gnutls-3.3.11-w32-bin.zip

jpeg-v9a-w32-bin.zip

libpng-1.6.12-w32-bin.zip

librsvg-2.40.1-2-w32-bin.zip

libtasn1-4.2-w32-bin.zip

libxml2-2.7.8-w32-bin.zip

libXpm-3.5.11-2-w32-bin.zip

nettle-2.7.1-w32-bin.zip

p11-kit-0.9-w32-bin.zip

pixman-0.32.4-w32-bin.zip

pkg-config-0.28-w32-bin.zip

tiff-4.0.3-w32-bin.zip

zlib-1.2.8-2-w32-bin.zip

Шаг № 4 : Загрузите последние исходные файлы главной ветки Emacs с помощью git-bashоболочки.

c:\git\git-bash.exe

cd /c/docume~1/lawlist/desktop/

git clone -b master git://git.sv.gnu.org/emacs.git

exit

Шаг № 5 : Создайте главную ветку Emacs и скопируйте файлы .dll, когда закончите.

;; откройте общую командную строку

c:\mingw\msys\1.0\msys.bat

export PATH=$PATH:/c/git/bin

cd /c/docume~1/lawlist/desktop/emacs

./autogen.sh

./configure --prefix=/c/docume~1/lawlist/desktop/trunk

make

make install

;; copy the following files to the `/bin` directory where `emacs.exe` is located.

cp /c/mingw/bin/libXpm-noX4.dll /c/docume~1/lawlist/desktop/trunk/bin/libXpm-noX4.dll

cp /c/mingw/bin/libpng16-16.dll /c/docume~1/lawlist/desktop/trunk/bin/libpng16-16.dll

cp /c/mingw/bin/libtiff-5.dll /c/docume~1/lawlist/desktop/trunk/bin/libtiff-5.dll

cp /c/mingw/bin/libjpeg-9.dll /c/docume~1/lawlist/desktop/trunk/bin/libjpeg-9.dll

cp /c/mingw/bin/libgif-7.dll /c/docume~1/lawlist/desktop/trunk/bin/libgif-7.dll

cp /c/mingw/bin/librsvg-2-2.dll /c/docume~1/lawlist/desktop/trunk/bin/librsvg-2-2.dll

cp /c/mingw/bin/libgdk_pixbuf-2.0-0.dll /c/docume~1/lawlist/desktop/trunk/bin/libgdk_pixbuf-2.0-0.dll

cp /c/mingw/bin/libglib-2.0-0.dll /c/docume~1/lawlist/desktop/trunk/bin/libglib-2.0-0.dll

cp /c/mingw/bin/libgobject-2.0-0.dll /c/docume~1/lawlist/desktop/trunk/bin/libgobject-2.0-0.dll

cp /c/mingw/bin/libxml2-2.dll /c/docume~1/lawlist/desktop/trunk/bin/libxml2-2.dll

cp /c/mingw/bin/zlib1.dll /c/docume~1/lawlist/desktop/trunk/bin/zlib1.dll

Распакуйте все содержимое gnutls-3.3.11-w32-bin.zipвC:\Documents and Settings\lawlist\Desktop\trunk


РУЧНАЯ УСТАНОВКА - MinGW / MSYS / EZwinports

Для тех искателей приключений, которые заинтересованы в ручной установке MinGW / MSYS / EZwinports, ниже приведены файлы, используемые этим автором в Windows XP для создания успешной 32-разрядной сборки со следующими параметрами конфигурации, включенными по умолчанию. Настройка и конфигурация будут варьироваться в зависимости от личных предпочтений отдельных пользователей и выходят за рамки этого ответа.

Configured for 'i686-pc-mingw32'.
Where should the build process find the source code?    .
What compiler should emacs be built with?               gcc -std=gnu99  -g3 -O 2 -gdwarf-2
Should Emacs use the GNU version of malloc?             no
  (The GNU allocators don't work with this system configuration.)
Should Emacs use a relocating allocator for buffers?    no
Should Emacs use mmap(2) for buffer allocation?         yes
What window system should Emacs use?                    w32
What toolkit should Emacs use?                          none
Where do we find X Windows header files?                NONE
Where do we find X Windows libraries?                   NONE
Does Emacs use -lXaw3d?                                 no
Does Emacs use -lXpm?                                   yes
Does Emacs use -ljpeg?                                  yes
Does Emacs use -ltiff?                                  yes
Does Emacs use a gif library?                           yes
Does Emacs use a png library?                           yes
Does Emacs use -lrsvg-2?                                yes
Does Emacs use cairo?                                   no
Does Emacs use imagemagick?                             no
Does Emacs support sound?                               yes
Does Emacs use -lgpm?                                   no
Does Emacs use -ldbus?                                  no
Does Emacs use -lgconf?                                 no
Does Emacs use GSettings?                               no
Does Emacs use a file notification library?             yes (w32)
Does Emacs use access control lists?                    yes
Does Emacs use -lselinux?                               no
Does Emacs use -lgnutls?                                yes
Does Emacs use -lxml2?                                  yes
Does Emacs use -lfreetype?                              no
Does Emacs use -lm17n-flt?                              no
Does Emacs use -lotf?                                   no
Does Emacs use -lxft?                                   no
Does Emacs directly use zlib?                           yes
Does Emacs use toolkit scroll bars?                     yes

EZWINPORTS

cairo-1.12.16-w32-bin.zip
gdk-pixbuf-2.30.2-w32-bin.zip
giflib-5.1.0-w32-bin.zip
glib-2.38.2-w32-bin.zip
gnutls-3.3.11-w32-bin.zip
jpeg-v9a-w32-bin.zip
libXpm-3.5.11-2-w32-bin.zip
libpng-1.6.12-w32-bin.zip
librsvg-2.40.1-2-w32-bin.zip
libtasn1-4.2-w32-bin.zip
libxml2-2.7.8-w32-bin.zip
nettle-2.7.1-w32-bin.zip
p11-kit-0.9-w32-bin.zip
pixman-0.32.4-w32-bin.zip
pkg-config-0.28-w32-bin.zip
tiff-4.0.3-w32-bin.zip
zlib-1.2.8-2-w32-bin.zip

MinGW

autoconf-10-1-mingw32-bin.tar.lzma
autoconf-10-1-mingw32-lic.tar.lzma
autoconf2.1-2.13-4-mingw32-bin.tar.lzma
autoconf2.5-2.68-1-mingw32-bin.tar.lzma
automake-4-1-mingw32-bin.tar.lzma
automake-4-1-mingw32-lic.tar.lzma
automake1.10-1.10.2-1-mingw32-bin.tar.lzma
automake1.11-1.11.1-1-mingw32-bin.tar.lzma
automake1.4-1.4p6-1-mingw32-bin.tar.lzma
automake1.5-1.5-1-mingw32-bin.tar.lzma
automake1.6-1.6.3-1-mingw32-bin.tar.lzma
automake1.7-1.7.9-1-mingw32-bin.tar.lzma
automake1.8-1.8.5-1-mingw32-bin.tar.lzma
automake1.9-1.9.6-3-mingw32-bin.tar.lzma
binutils-2.25.1-1-mingw32-bin.tar.xz
gcc-core-4.8.1-4-mingw32-bin.tar.lzma
gcc-core-4.8.1-4-mingw32-dev.tar.lzma
gcc-core-4.8.1-4-mingw32-dll.tar.lzma
gcc-core-4.8.1-4-mingw32-lic.tar.lzma
gdb-7.6.1-1-mingw32-bin.tar.lzma
gmp-5.1.2-1-mingw32-dll.tar.lzma
libcharset-1.13.1-1-mingw32-dll-1.tar.lzma
libiconv-1.13.1-1-mingw32-bin.tar.lzma
libiconv-1.13.1-1-mingw32-dev.tar.lzma
libiconv-1.13.1-1-mingw32-dll-2.tar.lzma
libiconv-1.13.1-1-mingw32-doc.tar.lzma
libiconv-1.13.1-1-mingw32-lic.tar.lzma
libintl-0.17-1-mingw32-dll-8.tar.lzma
libmpc-1.0.2-mingw32-dll-3.tar.xz
make-3.82.90-2-mingw32-cvs-20120902-bin.tar.lzma
mingwrt-3.21.1-mingw32-dev.tar.xz
mingwrt-3.21.1-mingw32-dll.tar.xz
mpfr-3.1.2-2-mingw32-dll.tar.lzma
pthreads-w32-2.9.1-1-mingw32-dll.tar.lzma
w32api-3.17-2-mingw32-dev.tar.lzma

MSYS

bash-3.1.23-1-msys-1.0.18-bin.tar.xz
bzip2-1.0.6-1-msys-1.0.17-bin.tar.lzma
coreutils-5.97-3-msys-1.0.13-bin.tar.lzma
coreutils-5.97-3-msys-1.0.13-doc.tar.lzma
coreutils-5.97-3-msys-1.0.13-ext.tar.lzma
coreutils-5.97-3-msys-1.0.13-lang.tar.lzma
coreutils-5.97-3-msys-1.0.13-lic.tar.lzma
diffutils-2.8.7.20071206cvs-3-msys-1.0.13-bin.tar.lzma
dos2unix-7.2.3-1-msys-1.0.18-bin.tar.lzma
file-5.04-1-msys-1.0.13-bin.tar.lzma
findutils-4.4.2-2-msys-1.0.13-bin.tar.lzma
gawk-3.1.7-2-msys-1.0.13-bin.tar.lzma
grep-2.5.4-2-msys-1.0.13-bin.tar.lzma
gzip-1.3.12-2-msys-1.0.13-bin.tar.lzma
less-436-2-msys-1.0.13-bin.tar.lzma
libbz2-1.0.6-1-msys-1.0.17-dll-1.tar.lzma
libcrypt-1.1_1-3-msys-1.0.13-dll-0.tar.lzma
libexpat-2.0.1-1-msys-1.0.13-dll-1.tar.lzma
libgdbm-1.8.3-3-msys-1.0.13-dll-3.tar.lzma
libiconv-1.14-1-msys-1.0.17-dll-2.tar.lzma
libintl-0.18.1.1-1-msys-1.0.17-dll-8.tar.lzma
liblzma-5.0.3-1-msys-1.0.17-dll-5.tar.lzma
libmagic-5.04-1-msys-1.0.13-dll-1.tar.lzma
libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma
libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma
libxml2-2.7.6-1-msys-1.0.13-dll-2.tar.lzma
m4-1.4.16-2-msys-1.0.17-bin.tar.lzma
make-3.81-3-msys-1.0.13-bin.tar.lzma
msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma
msysCORE-1.0.18-1-msys-1.0.18-doc.tar.lzma
msysCORE-1.0.18-1-msys-1.0.18-ext.tar.lzma
msysCORE-1.0.18-1-msys-1.0.18-lic.tar.lzma
perl-5.8.8-1-msys-1.0.17-bin.tar.lzma
sed-4.2.1-2-msys-1.0.13-bin.tar.lzma
tar-1.23-1-msys-1.0.13-bin.tar.lzma
termcap-0.20050421_1-2-msys-1.0.13-bin.tar.lzma
texinfo-4.13a-2-msys-1.0.13-bin.tar.lzma
xz-5.0.3-1-msys-1.0.17-bin.tar.lzma
zlib-1.2.7-1-msys-1.0.17-dll.tar.lzma
lawlist
источник
1

Я пробовал инструкции в emacs / nt / INSTALL в прошлом году для 32-битной сборки, но что-то пошло не так (точно не помню, что именно), поэтому недавно я попробовал инструкции для emacsbinw64 - он работал очень хорошо, и это Проще было также получить нужные библиотеки. Он использует MSYS2 и MinGW-w64 для 64-битной сборки - проект emacsbinw64 предоставляет двоичные файлы по адресу https://sourceforge.net/projects/emacsbinw64/files/ .

Поэтому я написал несколько инструкций, следуя этому плану, с отзывами Эли Зарецкого и автора Криса Чжэна - полная версия находится по адресу http://git.savannah.gnu.org/cgit/emacs.git/plain/nt/INSTALL .W64? H = emacs-25 (также включает сборку из релизного архива ).

Это заняло около 90 минут на Intel i3 и высокоскоростном интернет-соединении - YMMV. Обратите внимание, что большая часть работы по сборке в Windows - это просто настройка среды сборки ...


Требования

Общее требуемое пространство составляет 3 ГБ: 1,8 ГБ для MSYS2 / MinGW-w64 и 1,2 ГБ для Emacs с полным хранилищем.

Загрузите и установите MinGW-w64 и MSYS2

Загрузите версию MSYS2 для x86_64 (т.е. msys2-x86_64-.exe) с веб-сайта https://sourceforge.net/projects/msys2/files/Base/x86_64 .

Запустите этот файл, чтобы установить MSYS2 в выбранный вами каталог, например, по умолчанию C: \ msys64 - это также установит MinGW-w64. Обратите внимание, что имена каталогов, содержащие пробелы, могут вызвать проблемы.

Затем вам нужно добавить следующие каталоги в переменную среды Windows PATH:

c:\msys64\usr\bin;c:\msys64\mingw64\bin

Вы можете сделать это через Панель управления / Система и безопасность / Система / Дополнительные параметры системы / Переменные среды / Изменить путь.

Добавление этих каталогов в ваш PATH указывает Emacs, где искать библиотеки DLL, которые ему нужны для запуска, и некоторые необязательные команды, такие как grep и find. Эти команды также будут доступны на консоли Windows.

Скачайте и установите необходимые пакеты

Запустите msys2_shell.bat в вашем каталоге MSYS2, и вы увидите открытое окно BASH.

В приглашении BASH используйте следующую команду для установки необходимых пакетов (вы можете скопировать и вставить его в оболочку с помощью Shift + Insert):

pacman -S base-devel \
mingw-w64-x86_64-toolchain \
mingw-w64-x86_64-xpm-nox \
mingw-w64-x86_64-libtiff \
mingw-w64-x86_64-giflib \
mingw-w64-x86_64-libpng \
mingw-w64-x86_64-libjpeg-turbo \
mingw-w64-x86_64-librsvg \
mingw-w64-x86_64-libxml2 \
mingw-w64-x86_64-gnutls

Теперь у вас есть полная среда сборки для Emacs.

Установите Git (необязательно) и отключите autocrlf

Если у вас еще нет Git в вашей системе, вы можете установить его в вашей среде MSYS2 с помощью:

pacman -S git

Функция autocrlf в Git может мешать файлу конфигурации, поэтому лучше отключить эту функцию, выполнив команду:

git config core.autocrlf false

Получить исходный код Emacs

Чтобы загрузить Git-репозиторий, сделайте что-то вроде следующего - это поместит исходный код Emacs в C: \ emacs \ emacs-25:

mkdir /c/emacs
cd /c/emacs
git clone git://git.sv.gnu.org/emacs.git emacs-25

Сборка Emacs

Теперь вы готовы собрать и установить Emacs с помощью autogen, настроить, выполнить и выполнить установку.

Сначала нам нужно переключиться на среду MinGW-w64. Выйдите из консоли MSYS2 BASH и запустите mingw64_shell.bat в папке C: \ msys64, а затем вернитесь в исходный каталог Emacs, например:

cd /c/emacs/emacs-25

Запустить автоген

Если вы создаете источники разработки, запустите autogen, чтобы сгенерировать скрипт configure:

./autogen.sh

Запустите настройку

Теперь вы можете запустить configure, который будет собирать различные файлы Makefile.

Опция '--prefix' указывает местоположение для результирующих двоичных файлов, которые будет использовать 'make install' - в этом примере мы устанавливаем его в C: \ emacs \ emacs-25. Если префикс не указан, файлы будут помещены в стандартные каталоги Unix, расположенные в каталоге C: \ msys64, но это не рекомендуется.

Также обратите внимание, что нам нужно отключить Imagemagick, потому что Emacs пока не поддерживает его в Windows.

PKG_CONFIG_PATH=/mingw64/lib/pkgconfig \
./configure --prefix=/c/emacs/emacs-25 --without-imagemagick

Запустить сделать

Это скомпилирует Emacs и соберет исполняемые файлы, поместив их в каталог src:

make

Чтобы ускорить процесс, вы можете попробовать запустить

make -jN

где N - количество ядер в вашей системе - если ваш MSYS2 make поддерживает параллельное выполнение, он будет работать значительно быстрее.

Запустите make install

Теперь вы можете запустить «make install», которая скопирует исполняемый файл и другие файлы в папку, указанную на этапе настройки. Это создаст каталоги bin, libexec, share и var:

make install

Вы также можете сказать

make install prefix=/c/somewhere

установить их где-нибудь еще.

Тест Emacs

Чтобы проверить это, запустите

./bin/runemacs.exe -Q

и если все прошло хорошо, у вас будет новая 64-битная версия Emacs.

Сделать ярлык

Чтобы создать ярлык для запуска нового Emacs, щелкните правой кнопкой мыши место, куда вы хотите его поместить, например, Рабочий стол, выберите New / Shortcut, затем выберите runemacs.exe в папке bin нового Emacs и присвойте ему имя ,

Вы можете установить любые параметры командной строки, щелкнув правой кнопкой мыши по полученному ярлыку, выбрать «Свойства», а затем добавить любые параметры в команду «Цель», например, --debug-init.

кредиты

Спасибо Крису Чжэну за оригинальную схему сборки, используемую проектом emacsbinw64, расположенную по адресу https://sourceforge.net/p/emacsbinw64/wiki/Build%20guideline%20for%20MSYS2-MinGW-w64%20system/ .

Лицензия

Этот файл является частью GNU Emacs.

GNU Emacs является свободным программным обеспечением: вы можете распространять его и / или изменять его в соответствии с условиями Стандартной общественной лицензии GNU, опубликованной Free Software Foundation, либо версией 3 лицензии, либо (по вашему выбору) любой более поздней версией.

GNU Emacs распространяется в надежде, что он будет полезен, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии ТОВАРНОГО ОБЕСПЕЧЕНИЯ или ПРИГОДНОСТИ ДЛЯ ОСОБЫХ ЦЕЛЕЙ. Смотрите GNU General Public License для более подробной информации.

Вы должны были получить копию Стандартной общественной лицензии GNU вместе с GNU Emacs. Если нет, см. Http://www.gnu.org/licenses/ .

Брайан Бернс
источник
Рассмотрите возможность добавления шага для копирования любых файлов .dll, которые должны быть помещены в тот же файл, что и исполняемый файл Emacs, после завершения сборки, чтобы Emacs не полагался на общесистемный определенный путь для поиска этих файлов. файлы. Также, возможно, необходимо скопировать исполняемый файл (ы) для gnutls в каталог исполняемых файлов Emacs. Последние шаги, вероятно, должны быть довольно похожи на сборку Emacs 32 в альтернативном ответе.
юрист
Да, оригинальные инструкции были написаны таким образом, но Илай решил, что лучше использовать PATH - lists.gnu.org/archive/html/bug-gnu-emacs/2015-12/msg01476.html. Это еще один вариант - если вы хотите сделать это таким образом, вы можете просто скопировать все библиотеки DLL в C: \ msys64 \ mingw64 \ bin в папку emacs bin - они всего около 32 МБ - cp /c/msys64/mingw64/bin/*.dll bin. Я не очень разбираюсь в гнатах - есть ли простой способ проверить это?
Брайан Бернс
В самом общем смысле, фактически без использования его для электронной почты или чего-то подобного, общий тест проводится с помощью функции, которую gnutls-available-p я понимаю, для простоты, когда просто ссылаюсь на системные пути, но иногда люди могут захотеть использовать сборку Emacs на другом компьютере и они будут удивляться, почему изображения и прочее не работают "из коробки". Существует множество потоков, в которых люди спрашивают, почему pdf-файлы выглядят как бред в обычном буфере (т. Е. Из-за отсутствия поддержки png), или почему они не могут просматривать или просматривать документы в AUCTeX (по той же причине).
юрист
Хорошо, gnutls-available-pвозвращает t, используя только параметр PATH, поэтому я предполагаю, что он работает на данный момент - я отправлю патч с альтернативным методом для копирования DLL, и, возможно, exe-файлов gnutls, если они необходимы, и обновлю здесь позже.
Брайан Бернс