win11安裝emacs+igc+mps

七つ一旋桜發表於2024-12-03
git clone https://github.com/kiennq/emacs-build
cd emacs-build
 .\emacs-build.cmd  --slim --clone --deps --variant mps --build --branch sc
ratch/igc --with-mps --pdf-tools --hunspell --mu --isync --pack-all --with-tree-sitter=ifavailable

當msys2裝好後強制退出開始換源
進入emacs-build下載的ucrt64後執行如下命令

sed -i "s#mirror.msys2.org/#mirrors.ustc.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist*
pacman -Sy

然後在ucrt64中安裝libmps

cd emacs-build
sh ./.github/scripts/install-libs.sh

然後安裝pkgconf

pacman -S pkgconf

以上步驟為前置安裝操作
之後重新執行emacs的build命令

 .\emacs-build.cmd  --slim --clone --deps --variant mps --build --branch sc
ratch/igc --with-mps --pdf-tools --hunspell --mu --isync --pack-all --with-tree-sitter=ifavailable

其中msys2的最新版tree-sitter有問題,所以需要手動安裝舊版的tree-sitter,或者先用ifavailable命令代替,等安裝好之後手動複製dll到bin中


等安裝結束或者出現報錯後執行如下步驟
等安裝日誌在編譯emacs後出現安裝msys2的庫的時候說明已經安裝完成,在後續步驟中如果出現報錯也無所謂,這是在安裝一些dll,這些dll可以從kiennq的release中複製,安裝結果在emacs-build/pkg
此時按照Build Emacs 31 for Windows中的步驟執行如下命令

mkdir $target/lib/gcc
cp /ucrt64/lib/{crtbegin,crtend,dllcrt2}.o $target/lib/gcc
cp /ucrt64/lib/lib{advapi32,gcc_s,mingw32,msvcrt,shell32,kernel32,mingwex,pthread,user32}.a $target/lib/gcc
# 按照自己的gcc版本調整路徑
cp /ucrt64/lib/gcc/x86_64-w64-mingw32/14.2.0/libgcc.a $target/lib/gcc
cp /ucrt64/bin/{ld,as}.exe $target/lib/gcc

然後從kiennq/emacs-build: Scripts to build a distribution of Emacs from sources, using MSYS2 and Mingw64(32)中下載mps的msix,改字尾為zip解壓,複製其中bin裡的dll到emacs-build/pkg裡的bin中

相關文章