win11安装emacs+igc+mps

git clone https://github.com/kiennq/emacs-build
cd emacs-build
 .\emacs-build.cmd  --slim --clone --deps --variant mps --build --branch scratch/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 scratch/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中的步骤执行如下命令
其中$target是构建产物的目录,即emacs-build/pkg中的目录

target=path/to/emacs-build/pkg/your-target
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中

posted @ 2024-12-03 10:23  七つ一旋桜  阅读(288)  评论(0)    收藏  举报