Cách xây dựng nhánh chính Emacs (còn gọi là thân cây) trên MS-Windows


11

Tôi đã lao vào ngày hôm nay và bắt đầu thực hiện nhiệm vụ của mình để xây dựng bản dựng nhà phát triển chi nhánh chính Emacs gần đây nhất - còn gọi là Emacs Trunk - cho MS-Windows.

Tôi tìm thấy một blog cũ và làm thủ tục, chỉ gặp một thông báo lỗi cho tôi biết rằng phương pháp cụ thể đó không còn được hỗ trợ. Thông báo lỗi giới thiệu tôi đọc : .../emacs/nt/INSTALL. Vâng, đó là tất cả tốt và bảnh bao nếu cơ sở hạ tầng để xây dựng Emacs đã được cài đặt / cấu hình.

Sẽ rất hữu ích nếu có bước 1, 2, 3 mô tả những công cụ nào cần thiết và cách cài đặt / định cấu hình chúng với một con mắt cụ thể để xây dựng Emacs trên MS-Windows.

Trong trường hợp bất cứ ai muốn chuẩn bị một bài viết chi tiết, xin vui lòng gửi câu trả lời. Nếu không, tôi sẽ tự viết lên một khi tôi tìm ra cách để làm điều đó. Tôi đã gặp các chặn đường bổ sung và đã gửi báo cáo lỗi trong thời gian tạm thời - Tôi chưa biết liệu đó có phải là tôi không, hoặc có lẽ là một lỗi: https://debbugs.gnu.org/cgi/ormsreport.cgi? lỗi = 21582

Tôi nghĩ rằng nhiều người sẽ có xu hướng xây dựng Emacs của riêng họ nếu có một "cheat-sheet" có thể được sử dụng bởi những lập trình viên hoặc người có sở thích ban đầu như tôi (những người không phải lập trình viên bằng thương mại).


Tôi nghĩ rằng bạn có thể xây dựng Emacs trên Windows theo nhiều cách (rất có thể là MingW / MS VCC, nhưng cũng có thể kêu vang. Bạn có thể xem danh sách các thư viện cần thiết (có rất nhiều trong số chúng) emacswiki.org/emacs / BuildingEmacsWithMinGW nhưng thông tin này chắc chắn có niên đại (rất có thể là mười năm hoặc lâu hơn!)
wvxvw

Đối với bản dựng 64 bit, có một bản ghi tốt từ emacsbinw64 tại sourceforge.net/p/emacsbinw64/wiki/ Kẻ - nó sử dụng MSYS2 và MinGW-w64. Có lẽ các ghi chú nt / INSTALL cũng nên được cập nhật để bao gồm tùy chọn này?
Brian Burns

@ bburns.km - cảm ơn bạn đã liên kết. Tôi đã tự hỏi làm thế nào để xây dựng 64-bit, nhưng không có thời gian rảnh để đầu tư vô số giờ để tìm ra nó. Trong tương lai, tôi chắc chắn sẽ kiểm tra liên kết để xem liệu đó có phải là bước 1, 2, 3 hay chỉ là một phác thảo nơi các lập trình viên tiên tiến biết cách điền vào chỗ trống. Các hướng dẫn như nt / INSTALL về cơ bản là vô dụng đối với một người mới như tôi - nó có ý nghĩa đối với một lập trình viên, nhưng nó hầu như không có ý nghĩa gì đối với tôi - trong khi đó, 5 bước đơn giản của tôi thực sự là 1, 2, 3 thực sự mà bất kỳ ai Có thể làm theo.
luật

@lawlist Vâng, đó là một bài viết hay - Tôi đã thử cách đây một hoặc hai năm để thực hiện bản dựng 32 bit nhưng có gì đó không ổn và / hoặc tôi bị lạc trong đó - như bạn nói nó khá phức tạp đối với người không quen xây dựng mọi thứ từ nguồn. Nhưng các hướng dẫn emacsbinw64 đơn giản hơn một chút và hoạt động khá tốt - chỉ mất vài giờ để hoàn thành tất cả và làm cho nó hoạt động. Tôi nghĩ rằng tôi sẽ hỏi trên danh sách về việc cập nhật tài liệu nt / INSTALL - có thể có các phần 32 bit và 64 bit. Tôi đã bắt đầu viết một tài liệu nhưng nhận ra rằng nó không thêm quá nhiều vào các hướng dẫn emacsbinw64, nhưng nó có thể được sử dụng ở đó.
Brian Burns

Câu trả lời:


9

Người dùng nên đọc toàn bộ ../emacs/nt/INSTALLtrong mã nguồn Emacs.


Bắt đầu nhanh - 5 bước đơn giản :

Câu trả lời này đã được thử nghiệm trên WindowsXP - SP3. Đường dẫn cài đặt sẽ cần được điều chỉnh dựa trên sở thích cá nhân của người dùng. Trong ví dụ này:

  • Máy tính để bàn là: C:\Documents and Settings\lawlist\Desktop

  • Các gitcài đặt là: C:\git

  • Các MinGWcài đặt là: C:\mingw

  • Vị trí tải xuống git của nhánh chính Emacs là: C:\Documents and Settings\lawlist\Desktop\emacs

  • Mục tiêu cho việc cài đặt Emacs là: C:\Documents and Settings\lawlist\Desktop\trunk

Bước số 1 : Cài đặt gitvà chắc chắn chọn "thanh toán nguyên trạng, cam kết nguyên trạng" trong khi cài đặt:

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

Git-2.5.3-32-bit.exe

Chạy trình cài đặt.

Kế tiếp

Kế tiếp

Thư mục cài đặt tiêu chuẩn là C:\Program Files\Git, nhưng tôi đã chọn thay thế: c:\git

Chọn thành phần: mặc định là được, nhưng tôi không chọn gì cả.

Chọn thư mục menu bắt đầu: mặc định là được, bit tôi đã chọn không tạo thư mục thay thế.

Điều chỉnh môi trường PATH của bạn: mặc định là ổn: Chỉ sử dụng Git từ Bash.

;; Đối với phần tiếp theo này, hãy chú ý đến cài đặt không mặc định - xem lỗi Emacs # 21582.

Định cấu hình chuyển đổi kết thúc dòng: Emacs yêu cầu cài đặt không mặc định là "thanh toán nguyên trạng, cam kết nguyên trạng"

Định cấu hình trình giả lập thiết bị đầu cuối để sử dụng với Git Bash: mặc định là ổn: Sử dụng MinTTY (thiết bị đầu cuối mặc định của MSys2)

Định cấu hình các chỉnh sửa hiệu suất thử nghiệm: Tôi đã chọn KHÔNG "Kích hoạt bộ đệm ẩn hệ thống tệp".

Kết thúc [xem ghi chú phát hành nếu muốn]

LƯU Ý: autogen.sh(và có lẽ một số chương trình của bên thứ ba) yêu cầu gitPATH phải được đặt để có thể gọi (các) thực thi mà không cần sử dụng đường dẫn tuyệt đối. Tác giả của câu trả lời này có sở thích cá nhân về việc sử dụng các đường dẫn tuyệt đối và không sửa đổi PATH; tuy nhiên, hầu hết mọi người dường như thích sửa đổi PATH cho các phiên hiện tại và tương lai. Ví dụ, trên Windows XP, PATH có thể được đặt trong Bảng điều khiển / Thuộc tính hệ thống / tab Nâng cao / nút Biến môi trường và dường như có hai (2) lượt xem / ý kiến ​​về việc người dùng nên đặt Biến người dùng hay Hệ thống Biến - đường dẫn được phân tách bằng dấu chấm phẩy không có khoảng trắng. Câu trả lời này chỉ đơn giản là đặt PATH cho thời lượng của phiên sử dụng exportđược nêu ở đây dưới đây. Emacs autogen.shtìm kiếmgit lệnh trên PATH và phàn nàn nếu không thể tìm thấy.

Bước số 2 : Cài đặtMinGW

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

Bước số 3 : Tải xuống các ezwinportsgói nén sau đây và giải nén vào mingwthư mục gốc .

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

;; giải nén tất cả các gói ezwinports sau vào c:/mingw, ghi đè bất kỳ bản sao nào.

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

Bước số 4 : Tải xuống các tệp nguồn nhánh chính mới nhất của Emacs bằng git-bashshell.

c:\git\git-bash.exe

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

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

exit

Bước số 5 : Xây dựng nhánh chính Emacs và sao chép các tập tin dll khi hoàn thành.

;; mở lệnh chung chung Nhắc

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

Giải nén toàn bộ nội dung gnutls-3.3.11-w32-bin.zipđểC:\Documents and Settings\lawlist\Desktop\trunk


CÀI ĐẶT HƯỚNG DẪN - MinGW / MSYS / EZwinports

Đối với những linh hồn thích phiêu lưu, những người quan tâm đến việc cài đặt thủ công MinGW / MSYS / EZwinports, sau đây là các tệp được tác giả này sử dụng trên Windows XP để tạo bản dựng 32 bit thành công với các tùy chọn cấu hình sau được bật theo mặc định. Thiết lập và cấu hình sẽ thay đổi tùy theo sở thích cá nhân của người dùng và nằm ngoài phạm vi của câu trả lời này.

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

1

Tôi đã thử các hướng dẫn trong emacs / nt / INSTALL vào năm ngoái cho bản dựng 32 bit nhưng có gì đó không ổn (tôi không nhớ chính xác là gì), vì vậy gần đây tôi đã thử các hướng dẫn cho emacsbinw64 - nó hoạt động rất tốt, và nó cũng đơn giản hơn để có được các thư viện cần thiết. Nó sử dụng MSYS2 và MinGW-w64 để xây dựng 64 bit - dự án emacsbinw64 cung cấp các tệp nhị phân tại https://sourceforge.net/projects/emacsbinw64/files/ .

Vì vậy, tôi đã viết ra một số hướng dẫn theo phác thảo đó, với phản hồi từ Eli Zaretski và tác giả Chris Zheng - phiên bản đầy đủ có tại http://git.savannah.gnu.org/cgit/emacs.git/plain/nt/INSTALL .W64? H = emacs-25 (chỉ bao gồm xây dựng từ một tarball phát hành).

Quá trình này mất khoảng 90 phút trên Intel i3 và kết nối internet tốc độ cao - YMMV. Lưu ý rằng hầu hết các công việc để xây dựng trên Windows chỉ là thiết lập môi trường xây dựng ...


Yêu cầu

Tổng dung lượng cần có là 3 GB: 1,8 GB cho MSYS2 / MinGW-w64 và 1,2 GB cho Emacs với kho lưu trữ đầy đủ.

Tải xuống và cài đặt MinGW-w64 và MSYS2

Tải xuống phiên bản x86_64 của MSYS2 (tức là msys2-x86_64-.exe) từ https://sourceforge.net/projects/msys2/files/Base/x86_64 .

Chạy tệp này để cài đặt MSYS2 trong thư mục ưa thích của bạn, ví dụ: C: \ msys64 mặc định - điều này cũng sẽ cài đặt MinGW-w64. Lưu ý rằng tên thư mục chứa khoảng trắng có thể gây ra vấn đề.

Sau đó, bạn sẽ cần thêm các thư mục sau vào biến môi trường Windows PATH của mình:

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

bạn có thể thực hiện việc này thông qua Bảng điều khiển / Hệ thống và Bảo mật / Hệ thống / Cài đặt hệ thống nâng cao / Biến môi trường / Đường dẫn chỉnh sửa.

Việc thêm các thư mục này vào PATH của bạn sẽ cho Emac biết nơi tìm các DLL mà nó cần để chạy và một số lệnh tùy chọn như grep và find. Các lệnh này cũng sẽ có sẵn trong bảng điều khiển Windows.

Tải xuống và cài đặt các gói cần thiết

Chạy msys2_shell.bat trong thư mục MSYS2 của bạn và bạn sẽ thấy cửa sổ BASH được mở.

Trong lời nhắc BASH, sử dụng lệnh sau để cài đặt các gói cần thiết (bạn có thể sao chép và dán nó vào trình bao với Shift + Chèn):

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

Bây giờ bạn có một môi trường xây dựng hoàn chỉnh cho Emacs.

Cài đặt Git (tùy chọn) và tắt autocrlf

Nếu bạn chưa có Git trên hệ thống của mình, bạn có thể cài đặt nó trong môi trường MSYS2 với:

pacman -S git

Tính năng autocrlf của Git có thể can thiệp vào tệp cấu hình, vì vậy tốt nhất là tắt tính năng này bằng cách chạy lệnh:

git config core.autocrlf false

Lấy mã nguồn Emacs

Để tải xuống kho Git, hãy thực hiện một số thao tác như sau - việc này sẽ đưa nguồn Emacs vào C: \ emacs \ emacs-25:

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

Xây dựng Emacs

Bây giờ bạn đã sẵn sàng để xây dựng và cài đặt Emacs với autogen, cấu hình, tạo và thực hiện cài đặt.

Đầu tiên chúng ta cần chuyển sang môi trường MinGW-w64. Thoát khỏi bảng điều khiển BASH MSYS2 và chạy mingw64_shell.bat trong thư mục C: \ msys64, sau đó cd trở lại thư mục nguồn Emacs của bạn, ví dụ:

cd /c/emacs/emacs-25

Chạy tự động

Nếu bạn đang xây dựng các nguồn phát triển, hãy chạy autogen để tạo tập lệnh cấu hình:

./autogen.sh

Chạy cấu hình

Bây giờ bạn có thể chạy configure, nó sẽ xây dựng các Makefiles khác nhau.

Tùy chọn '--prefix' chỉ định vị trí cho các tệp nhị phân kết quả, mà 'make install' sẽ sử dụng - trong ví dụ này, chúng tôi đặt nó thành C: \ emacs \ emacs-25. Nếu tiền tố không được chỉ định, các tệp sẽ được đặt trong các thư mục Unix tiêu chuẩn nằm trong thư mục C: \ msys64 của bạn, nhưng điều này không được khuyến khích.

Cũng lưu ý rằng chúng ta cần phải vô hiệu hóa Imagemagick vì Emacs chưa hỗ trợ nó trên Windows.

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

Chạy đi

Điều này sẽ biên dịch Emacs và xây dựng các tệp thực thi, đưa chúng vào thư mục src:

make

Để tăng tốc quá trình, bạn có thể thử chạy

make -jN

Trong đó N là số lõi trong hệ thống của bạn - nếu MSYS2 của bạn hỗ trợ thực thi song song, nó sẽ chạy nhanh hơn đáng kể.

Chạy cài đặt

Bây giờ bạn có thể chạy "make install", nó sẽ sao chép tệp thực thi và các tệp khác vào vị trí được chỉ định trong bước định cấu hình. Điều này sẽ tạo các thư mục bin, libexec, share và var:

make install

Bạn cũng có thể nói

make install prefix=/c/somewhere

để cài đặt chúng ở một nơi khác.

Kiểm tra Emacs

Để kiểm tra nó, hãy chạy

./bin/runemacs.exe -Q

và nếu mọi việc suôn sẻ, bạn sẽ có một phiên bản Emacs 64 bit mới.

Tạo một phím tắt

Để tạo một lối tắt để chạy Emacs mới, nhấp chuột phải vào vị trí bạn muốn đặt nó, ví dụ như Desktop, chọn New / Shortcut, sau đó chọn runemacs.exe trong thư mục bin của Emacs mới và đặt tên cho nó .

Bạn có thể đặt bất kỳ tùy chọn dòng lệnh nào bằng cách nhấp chuột phải vào phím tắt kết quả, chọn Thuộc tính, sau đó thêm bất kỳ tùy chọn nào vào lệnh Target, ví dụ: --debug-init.

Tín dụng

Cảm ơn Chris Zheng về phác thảo xây dựng ban đầu được sử dụng bởi dự án emacsbinw64, được đặt tại https://sourceforge.net/p/emacsbinw64/wiki/Build%20guideline%20for%20MSYS2-MinGW-w64%20system/ .

Giấy phép

Tập tin này là một phần của GNU Emacs.

GNU Emacs là phần mềm miễn phí: bạn có thể phân phối lại và / hoặc sửa đổi nó theo các điều khoản của Giấy phép Công cộng GNU như được xuất bản bởi Tổ chức Phần mềm Tự do, phiên bản 3 của Giấy phép hoặc (tùy chọn của bạn) bất kỳ phiên bản nào sau này.

GNU Emacs được phân phối với hy vọng rằng nó sẽ hữu ích, nhưng KHÔNG CÓ BẤT K WAR ĐẢM BẢO NÀO; thậm chí không có bảo hành ngụ ý của MERCHANTABILITY hoặc FITNESS CHO MỘT MỤC ĐÍCH THAM GIA. Xem Giấy phép Công cộng GNU để biết thêm chi tiết.

Bạn sẽ nhận được một bản sao Giấy phép Công cộng GNU cùng với GNU Emacs. Nếu không, hãy xem http://www.gnu.org/licenses/ .


Xem xét thêm một bước để sao chép bất kỳ tệp dll nào cần được đặt trực tiếp giống như thực thi Emacs sau khi quá trình xây dựng hoàn tất, để Emacs không cần phải dựa vào đường dẫn được xác định trên toàn hệ thống để tìm những tệp đó các tập tin. Ngoài ra, có lẽ cần phải sao chép (các) tệp thực thi cho các gnutls vào thư mục thực thi Emacs. Các bước cuối cùng có thể tương đối giống với bản dựng Emacs 32 trong câu trả lời thay thế.
luật

Vâng, các hướng dẫn ban đầu đã được viết theo cách đó, nhưng Eli nghĩ rằng tốt hơn là sử dụng PATH - list.gnu.org/archive/html/orms-gnu-emacs/2015-12/msg01476.html. Tuy nhiên, đây là một tùy chọn khác - nếu bạn muốn làm theo cách đó, bạn có thể sao chép tất cả các DLL trong C: \ msys64 \ mingw64 \ bin vào thư mục bin emacs - chúng chỉ khoảng 32 MB - cp /c/msys64/mingw64/bin/*.dll bin. Tôi không biết nhiều về hạt dẻ - có cách nào đơn giản để kiểm tra không?
Brian đốt cháy

Theo nghĩa chung nhất mà không thực sự sử dụng nó cho email hoặc một cái gì đó, thử nghiệm chung là với chức năng gnutls-available-p tôi hiểu lý do đơn giản khi chỉ tham khảo các đường dẫn hệ thống, nhưng đôi khi mọi người có thể muốn sử dụng Emacs xây dựng trên một máy tính khác và họ sẽ tự hỏi tại sao hình ảnh và công cụ không hoạt động tốt. Có rất nhiều chủ đề với mọi người hỏi tại sao các tệp pdf trông giống như vô nghĩa trong một bộ đệm thông thường (nghĩa là vì thiếu hỗ trợ png) hoặc tại sao họ không thể xem doc hoặc xem trước trong AocateeX (cùng lý do).
luật

Được rồi, gnutls-available-ptrả về t chỉ bằng cách sử dụng cài đặt PATH, vì vậy tôi sẽ giả sử nó hoạt động ngay bây giờ - Tôi sẽ gửi một bản vá với phương pháp thay thế để sao chép các DLL, và có thể là các gnutls, nếu cần, và cập nhật tại đây một lát sau.
Brian đốt cháy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.