void variable: \213

公司的开发机是断网的,也没有root权限,没法直接安装spacemacs。

因此我在本地的机器上用brew在home目录里安转了emacs,然后又安装了spacemacs。

最后把整个home目录直接拷贝到开发机上,就遇到了如下的错误。

我该如何调试?

二进制不兼容?

把开发机上的 .elc 删掉试试。

没有开navtive-comp应该不会产生.elc吧

elc 不是 eln,不需要 navtive-comp。

全部重新编译一次包就行了,试试看

(byte-recompile-directory package-user-dir 0 t)

这句要放在哪里?

试了一下,不起作用

不行就 emacs -Q 和二分法。

直接执行啊, C-x C-e

我试试看行不行

你的 ~/.linuxbrew 也是本机拷贝上去的?这也可能会潜藏问题。

如果是二进制兼容问题,那么 ~/.linxuebrew/Cellar/emacs-*/ 下的 .elc 也要删除。

对我发现了这一点

冷知识:elc 是跨平台向后兼容的。

所以不兼容只有开发机上 emacs 版本过旧的可能。

而且 elc 不兼容的话要么直接崩溃,要么出错的时候bscktrace 有 byte code。这个方向可以基本排除了。

看报错信息的话,是 eval 了 info.el.gz。

可能的问题有

  1. 你的 emacs 不支持读取 gzip 文件
  2. info.elc 缺失,需要你重新编译出来
  3. emacs 支持 gzip,但是 info.el.gz 损坏了。

我在开发机上 brew reinstall emacs 在开发机上重新编译了一遍emacs,问题就解决了