如何修复"源文件比字节编译文件更新"错误?

时间:2014-03-21 07:06:59

标签: emacs elisp

我收到了错误

  

源文件`〜/ .emacs.d / elpa / cmake-mode-20110824 / cmake-mode.el'比字节编译文件更新

当我尝试在cmake-mode中打开CMakeLists.txt文件时。

我的.emacs包含(部分)以下内容:

(setq load-path (cons 
             (expand-file-name "~/.emacs.d/elpa/cmake-mode-20110824") 
             load-path))
(require 'cmake-mode)
(setq auto-mode-alist
      (append '(("CMakeLists\\.txt\\'" . cmake-mode)
            ("\\.cmake\\'" . cmake-mode))
              auto-mode-alist))

回溯:

Debugger entered--Lisp error: (wrong-type-argument char-table-p nil)
  char-table-parent(nil)
  cmake-mode()
  set-auto-mode-0(cmake-mode nil)
  set-auto-mode()
  normal-mode(t)
  after-find-file(nil t)
  find-file-noselect-1(#<buffer CMakeLists.txt> "~/CMakeLists.txt" nil nil   "~/CMakeLists.txt" (19923691 2049))
  find-file-noselect("~/CMakeLists.txt" nil nil t)
  find-file("~/CMakeLists.txt" t)
  call-interactively(find-file nil nil)

我对此错误发生的原因感到困惑。免责声明:我是emacs和elisp noob。

1 个答案:

答案 0 :(得分:3)

问题可能在cmake-mode内,这已经过时了。 以下是修复方法:

  1. 从上面删除所有设置
  2. 确保您拥有emacs24
  3. ~/.emacs

    (package-initialize)
    (add-to-list 'package-archives
      '("melpa" . "http://melpa.milkbox.net/packages/"))
    
  4. M-x package-list-packages。使用 C-s 查找cmake-mode。 使用 i 标记安装,并使用 x 进行安装。