代码 byte-compile 后运行出错怎么解释?

大家有没有这样的经历,就是一个包如果不 byte-compile,加载运行起来没有一点问题。 但是如果 byte-compile 过了,然后再加载运行就报错?怎样 debug 这种错误呢?

注意,前提是这个包使用了 lexical-binding。但是,我并不知道这有没有关系。

Edit: 好吧,应该是没有关系的,因为我把 lexical-binding 的去掉后问题依旧。

这个包自动安装时提示 compile 失败,然后我手动 compile。compile 没有报错但是执行程序时报错。应该是 compile 出了问题,但是 compile-log 什么都没有显示,这怎样解决啊?

这个问题极为棘手啊,因为我如果 byte-compile 后再运行就报错,然后报错信息看不懂,因为是乱码。

但是如果不 byte-compile 运行,则根本不会报错 :joy:

都贴上来让我们看看吧