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
这样子那个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
啊这,这个我没遇到过,我也看不出来是哪里错了 ,我刚刚pull了一下最新的commit按照我说的方法也能顺利编译。。。emacs源码目录里面nt/INSTALL.W64是msys2编译emacs的说明文档,要不你参考下。。
不懂就问,请教下这个native emacs lisp和普通的emacs比有啥优点?
可以翻一翻帖子前面的讨论
最大的优势就是快 ,运行整体感觉更顺滑一些
多谢,我这个问题估计是Msys2 的原因,现在这个版本是通过scoop安装的最新版。这个版本编译Emacs master分支也是出现同样的错误。以前通过choco 安装的版本是没问题的,不知道少了什么依赖。
有没有win10可用的编译好版,求共享
merge native-comp 到 master 分支的 review 好像停了3个月了,维护者似乎有点 “意见”了
https://lists.gnu.org/archive/html/emacs-devel/2021-02/msg00878.html
这玩意迟早会变成佛系用户和折腾用户之间冲突的导火线。
我是佛系用户,我已经转研究Guile了
我倒是希望Emacs出现一个neovim一样的东西,Emacs的历史包袱太重了,愿意用Emacs的就继续用Emacs,想用新特性的,就去用新东西。
这个编译的问题重新安装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里面