native Emacs Lisp

Linux 下的 native-comp 是真的靠谱。

按钮教程https://www.reddit.com/r/emacs/comments/kk3ep0/guide_compile_emacs_with_nativecomp_on_windows_10/ 一路下来最后的make install 出出现下列问题,也不懂是哪里出了问题,哪个大大路过帮帮忙

/d/emacs-native-comb/lib/emacs/28.0.50/ 这个目录确实也是没有的,不知道怎么破

msys2 支持 libgccjit 了吗?有了这个才好编译native-com

image 这样子那个installed 是不是已经安装好了

多谢,现在最新版的gcc 10.2.0 已经默认编译了 libgccgit。

看了好几个 他们都是直接编译成功 很顺利 我这个好像是少了什么库文件 我看这边的错误日志是要编译emacs的lib但找不到

reddit那个帖子里面写的依赖安装有点问题,应该是

  pacman -S --needed 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-lcms2 \
  mingw-w64-x86_64-jansson \
  mingw-w64-x86_64-libxml2 \
  mingw-w64-x86_64-gnutls \
  mingw-w64-x86_64-zlib \
  mingw-w64-x86_64-harfbuzz

另外mkdir build; cd build这一步是多余的,正常情况下

./autogen.sh
./configure --with-nativecomp --without-dbus

然后如果能config成功就直接make就行了。

你可以先git clean -dxf后再试试

按你的方法,我这边会提示以下错误,请问下是什么原因?

$ make
make -C nt all
make[1]: 进入目录“/c/Users/Aqua/emacs-native-com/emacs/nt”
  RC       emacs.res
The system cannot find the path specified.
C:\Users\Aqua\scoop\apps\msys2\current\mingw64\bin\windres.exe: preprocessing failed.
make[1]: *** [Makefile:257:emacs.res] 错误 1
make[1]: 离开目录“/c/Users/Aqua/emacs-native-com/emacs/nt”
make: *** [Makefile:421:nt] 错误 2

啊这,这个我没遇到过,我也看不出来是哪里错了 :joy:,我刚刚pull了一下最新的commit按照我说的方法也能顺利编译。。。emacs源码目录里面nt/INSTALL.W64是msys2编译emacs的说明文档,要不你参考下。。

不懂就问,请教下这个native emacs lisp和普通的emacs比有啥优点?

可以翻一翻帖子前面的讨论

最大的优势就是快 :joy:,运行整体感觉更顺滑一些

多谢,我这个问题估计是Msys2 的原因,现在这个版本是通过scoop安装的最新版。这个版本编译Emacs master分支也是出现同样的错误。以前通过choco 安装的版本是没问题的,不知道少了什么依赖。

有没有win10可用的编译好版,求共享

merge native-comp 到 master 分支的 review 好像停了3个月了,维护者似乎有点 “意见”了

https://lists.gnu.org/archive/html/emacs-devel/2021-02/msg00878.html

native-comp review stuck for 6 months?!

这玩意迟早会变成佛系用户和折腾用户之间冲突的导火线。

我是佛系用户,我已经转研究Guile了

我倒是希望Emacs出现一个neovim一样的东西,Emacs的历史包袱太重了,愿意用Emacs的就继续用Emacs,想用新特性的,就去用新东西。

1 个赞

这个编译的问题重新安装msys2还是没法解决。 连Master分支也没法用msys2 编译了,configure 成功后,make就会报错。 不知道有没有道友遇到同样问题?

$ make
make -C nt all
make[1]: 进入目录“/c/emacs/nt”
  RC       emacs.res
The system cannot find the path specified.
C:\Users\Aqua\scoop\apps\msys2\current\mingw64\bin\windres.exe: preprocessing failed.
make[1]: *** [Makefile:257:emacs.res] 错误 1
make[1]: 离开目录“/c/emacs/nt”
make: *** [Makefile:421:nt] 错误 2

有没有可能是PATH不对?比如PATH里面能找到几个不同的make可执行文件,你在这里实际执行make的时候用到的不是msys的make?

实在不行的话我建议单独安装一个msys2,然后不要把msys2的/ming64/bin和/usr/bin放到path里面,确保ming64终端打开后是纯msys2的环境。

我把我用msys2编译好的gccemacs打包了一份:https://pan.baidu.com/s/1JJfJtr3Rv1lWsEefz11Nbw 提取码: zpct

configure flag是"–with-nativecomp --without-dbus --with-modules",应该够日常用了。

这个可以不依赖于msys2的环境运行,但是那样就没ssh和gpg用了,建议还是安装一个msys2然后把msys的/ming64/bin和/usr/bin加到PATH或者emacs的exec-path里面

3 个赞