当我尝试在 Emacs 24.2.1 下对 csharp-mode 进行字节编译时,出现以下错误:
csharp-mode.el:2028:1:Error: Symbol's value as variable is void: csharp-enum-decl-re
This post 确认了同样的编译问题并提供了以下补救措施:
这个补救措施对我也有效!但是,这种补救措施给我留下了几个问题:
csharp-enum-decl-re
,为什么 csharp-mode.el 字节编译失败? (请参阅 csharp-mode.el 源代码的第一个链接。) csharp-enum-decl-re
的依赖在哪里? (defconst csharp-font-lock-keywords-2 (c-lang-const c-matchers-2 csharp)
"Fast normal highlighting for C# mode.")
最佳答案
尽我所知:
eval-and-compile
宏。 eval-buffer
之前使用 byte-compile
是一种避免修改源代码的解决方法。编写补丁并将其发送给作者是另一种选择。 c-lang-defconst
假设为 c-matchers-1
、 c-matchers-2
和 c-matchers-3
定义值,但对于 c-matchers-2
需要 csharp-enum-decl-re
的值(参见第 1304 行)。请注意,符号的名称 (c-matchers-*) 是由 c-lang-defconst
宏本身创建的。 关于c# - Emacs 'csharp-mode' 字节编译错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20528989/