在 emacs 29的源代码目录运行 make bootstrap 后会否解决?
谢谢提示,等我有空试试。看了 aqua0210 是正常的,我怀疑会不会跟编译选项有关。这是我的(stackoverflow上抄的):
./configure --with-cairo --with-modules --without-dbus --without-compress-install --with-gnutls --with-native-compilation --with-json --with-harfbuzz --with-jpeg --with-png --with-rsvg --with-tiff --with-wide-int --with-xft --with-xml2 --with-xpm CFLAGS="-O3 -mtune=native -march=native -fomit-frame-pointer"
作为 emacs 开发者,我强烈建议大家避免从网上抄编译命令行。你使用的配置大部分选项都无效:
- –with-cairo 只针对 X11 平台,Windows 下开启不会起到任何作用。
- –with-modules, --with-gnutls, --with-harfbuzz, --with-jpeg, --with-png, --with-rsvg, --with-tiff, --with-xml2, --with-xpm 和 --with-json 都是默认选项,无需手动开启。
- –with-wide-int 在 64 位系统下无效,作用是提高 32 位系统下 fixnum 和 buffer 的最高值/大小。开启时还会导致 Emacs 的运行速度减慢 5%-20%。
- –with-xft 同样只针对与 X11 平台,而且不兼容 --with-cairo,如果两项同时开启 --with-cairo 优先。
使用这样的配置不仅会导致编译时不方便,还会造成 emacsbug 生成的报告含有错误的编译选项,这种报告让维护者感到非常不方便。
19 个赞
SPQR
25
请问 --without-dbus
在Windows下是默认选项吗?
谢谢,编译选项太多,不知道设置什么。CFLAGS="-O3 -mtune=native -march=native -fomit-frame-pointer"
请教这个能保留吗。默认编译出来的有点大。
谢谢,编译选项太多,不知道设置什么。CFLAGS后面这些, 请教这个能保留吗。默认编译出来的有点大。
那些只是优化,自己看吧。一般说 emacs 不需要用 -O3 或 -fomit-frame-pointer 编译。
请问那我用这种行吗?
./configure --without-dbus --with-native-compilation CFLAGS="-O2 -mtune=native"
前面好像看到陈斌贴子说不优化速度会慢
在 Windows 上编译Emacs 直接看官方的编译说明就可以了
这是我自己总结的博客
3 个赞
lynnux
32
这样没问题。优化要凭自己感受,一般情况下 -O3 对 Emacs 的影响不大,有时还会产生副作用。
LdBeth
34
真觉得差那么几MB的话可以用 -Os
,作用是 O2 基础上减少体积。作用最大的还是 strip。
但有这个功夫优化可执行文件不如清理下系统 log 之类的无用文件,轻松就能腾出来 1~2 GB。
谢谢几位大佬的指导。重新编译了好几次,测试出前面不会着色的 bug 应该是那个commit的问题,最新的commit已经正常。编译选项: ./configure --without-dbus --with-native-compilation CFLAGS="-O2"
。期间执行 autogen.sh 时遇到一个错误:
/status.m4:289: AC_CONFIG_FILES is expanded from
执行下 dos2unix configure.ac
命令就可以了。
1 个赞
Windows上的第三方emacs29编译版本2小时前更新了,新增了AOT选项
1 个赞
douo
37
brew install emacs-plus@29 --with-native-comp
我看你的博客,你能最后成功运行 emacs-plus@29 --with-native-comp
吗?没遇到这个问题?
1 个赞
很久没有用这个方式安装了,不确定是否正常。因为这种方式要拉整个 Emacs 的 GitHub 仓库,我这边网速不行。
我主要是用博客中的第一种方式,用自动编译脚本,本地编译 Emacs 29,这种方式只要拉一个几十M 的 Tarball,比较方便。
一般是一周编译一次,或者有感兴趣的更新再编译。这样也不影响 Brew upgrade
ln -sf $(brew --prefix)/opt/emacs-plus@29/lib/emacs/29.0.50/native-lisp $(brew --prefix)/Cellar/emacs-plus@29/29.0.50/Emacs.app/Contents
参考 emacs@29 --with-native-comp linkage errors · Issue #476 · d12frosted/homebrew-emacs-plus · GitHub
1 个赞