elisp文件的字节编译版本


12

我同时拥有elisp文件.el的字节编译版本(.elc)。我不小心删除了.el文件。我可以.el从其.elc版本中检索文件吗?.elc没有其.el文件功能的文件是否起作用?

Answers:


12

我同时拥有.el和elisp文件的字节编译版本(.elc)。我不小心删除了.el文件。我可以从.elc版本中检索.el文件吗?

实际上,没有。

从理论上讲,您可以使用elc文件生成具有人类可读定义的el文件。但是,由于宏和编译器的优化,这看起来可能与您删除的原始文件不一样,即使那样,我仍然不知道有任何这样做的库。

没有其.el文件的.elc文件是否起作用?

是的,Emacs很高兴.elc自己完全加载文件。完全不需要.el文件。

实际上,即使两者都位于同一目录中,Emacs通常也无论如何都会加载elc。


您不需要“ 都在同一目录中 ”。您不需要两者。* .elc足够,至少如果您的Emacs版本与它兼容(例如,与从其编译的Emacs版本兼容)。
画了

@Name第二句话是补充信息。答案是“是”。Emacs可以很好地加载'elc'文件,而无需'.el'文件。
马拉巴巴

2
“实际上,即使两者都在同一目录中,Emacs也通常会加载elc。”。如果在emacs 24.4+中load-prefer-newer设置为t,则会加载较新的.el / .elc。
2015年

3

检查*.el~文件-可能有丢失*.el文件的Emacs备份(某些工具会将其隐藏在用户界面中,因此请使用ls -a)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.