手工编译安装emacs 29.4后,doom sync报错,寻求帮助

已经删除emacs 28,然后安装了自己编译的emacs 29.4.使用emacs -q可以正常启动,使用doom sync 时提示的错误信息如下: $ doom sync

Error: error (“Eager macro-expansion failure: (void-variable )”) mapbacktrace(#[1028 “\1\4\203\24\0\301\302!\210\300\4!\210\301\303!\210\202\35\0\301\304!\210\3\3B\262\1\211\2035\0\300\1@!\210\211A\211\262\2\2035\0\301\305!\210\202!\0\301\306!\207” [prin1 princ " " “(” " (" " " “)\n”] 7 “\n\n(fn EVALD FUNC ARGS FLAGS)”]) debug-early-backtrace() debug-early(error (error “Eager macro-expansion failure: (void-variable )”)) error(“Eager macro-expansion failure: %S” (void-variable )) internal-macroexpand-for-load((eval-when-compile (require 'subr-x)) nil) load-with-code-conversion(“/home/chengzi/.config/emacs/lisp/doom.el” “/home/chengzi/.config/emacs/lisp/doom.el” nil t) load(“/home/chengzi/.config/emacs/lisp/doom” nil t nil must-suffix)

我懵了,求大佬指点

可能是版本更新导致byte-code出现不兼容,把你安装的所有包的elc文件都删了然后重新byte compile一下试试?

这种情况建议把 doom 配置文件备份一下,把 emacs 编译文件($HOME/.config/emacs 或者 $HOME/.emacs.d)都删了,然后重新安装 doom-emacs 。

问题是执行doom install 再次报错:

嗯,这次是emacs 30.1

使用C-h f,发现没有subr-x,怀疑这是错误的原因

我的 doom 保留自己配置 install 都不行。每次都需要用默认方式安装好 doom,再把 config, init 和 package 这些替换为自己的配置,再 doom sync才行。你可以试试

删干净之后重启一下系统,我前几天正好经历过,最后基本就是删除、重启、重装解决的