从 git 源代码编译 Emacs24

从 git 源代码编译 Emacs24

我已经使用 emacs 的预发布版本很长时间了。我使用 git 从中签出代码git://git.savannah.gnu.org/emacs.git并按照 INSTALL.txt 中的说明进行操作。根据我的 emacs“关于”屏幕,上次正常工作是使用 24.0.50.1。从那时起,我定期尝试更新我的 emacs 24 版本,但编译总是失败(可能是在自检或引导部分),并出现以下错误:

Loading button (compiled; note, source file is newer)...
Loading startup (compiled; note, source file is newer)...
Loading /usr/local/src/emacs/lisp/loaddefs.el (source)...
Symbol's function definition is void: replace-buffer-in-windows
make[1]: *** [bootstrap-emacs] Error 1
make[1]: Leaving directory `/usr/local/src/emacs/src'
make: *** [src] Error 2

这种情况已经持续了好几个月。我经常在谷歌上搜索是否有任何解决方案/解决方法,但我什么也没找到。只有我一个人遇到这个问题吗?如果是的话,有什么解决方法的建议吗?并不是说我必须拥有最新的 emacs 24 预发布版,但我仍然想弄清楚为什么我无法再编译它,以及为什么似乎没有其他人遇到这个错误(或者谷歌没有在任何可以找到的地方提到它)。

更新:这已在 Ubuntu 11.10 桌面系统上发生过,现在又在 12.04 测试版(全部为 x64)上发生过。

答案1

将最新版本克隆到新目录中,而不是执行“就地”拉取(随后执行make distclean./autogen.sh./configuremake)似乎可以解决这个问题。因此,在我的情况下,早期版本的早期编译过程必定留下了一些东西,导致问题出现。

因此,如果您遇到类似的问题,请确保在放弃之前尝试“干净”地签出到新的目录。

答案2

我遇到了这种情况。似乎有一些旧的 elisp 编译工件没有被删除make clean。我用以下方法修复了它

find . -name '*.elc' -print0 | xargs -0 rm -f

相关内容