使用ede-cpp-root-project时出现Lisp错误

时间:2012-02-15 17:04:35

标签: emacs cedet

我一直试图让CEDET在最后一段时间内完成一个简单的项目。我有以下项目文件:

(ede-cpp-root-project "aesalon-project"
                :name "aesalon-name"
                :file "~/projects/aesalon/SConstruct"
                :include-path '("/"
                                "/include/"))

我一直在将上面的内容加载到缓冲区并执行缓冲区内容。问题不在于项目没有正确加载 - 它似乎打赌设置得当;我可以使用菜单栏更改设置等。但是,当我尝试重新扫描项目的文件时,出现以下错误:

Debugger entered--Lisp error: (wrong-type-argument class-p ede-cpp-root)
  signal(wrong-type-argument (class-p ede-cpp-root))
  child-of-class-p(ede-cpp-root-project ede-cpp-root)
  object-of-class-p([object ede-cpp-root-project "aesalon-project" nil "aesalon-name" "1.0" "/home/ethereal/projects/aesalon/" 3546321 "/home/ethereal/projects/aesalon/SConstruct" nil nil nil unbound unbound "" "" "" "" "" "" ("debug" "release") "debug" nil ("/" "/include/") nil nil nil "\\.\\(h\\(h\\|xx\\|pp\\|\\+\\+\\)?\\|H\\)$\\|\\<\\w+$" nil] ede-cpp-root)
  ede-toplevel-project("~/projects/aesalon/")
  ede-rescan-toplevel()
  call-interactively(ede-rescan-toplevel nil nil)

我发现这有点奇怪,因为当我查看ede-cpp-root-project的文档时,我发现它的父级ede-project而不是ede-cpp-root?还是我误解了这条痕迹?我对Emacs Lisp不太熟悉。

这是我的cedet-version输出:

CEDET Version:  1.0
            Requested   File        Loaded
  Package       Version     Version     Version
  ----------------------------------------------------------
  cedet:        1.0     ok      ok
  eieio:        1.3     ok      ok
  semantic:     2.0     ok      ok
  srecode:      1.0     ok      ok
  ede:          1.0     ok      ok
  speedbar:     1.0.3       ok      ok
  cogre:        1.0     ok      Not Loaded
  cedet-contrib:    1.0     ok      Not Loaded



C-h f cedet-version RET
  for details on output format.

我的emacs版本:(最新的Arch Linux存储库)

GNU Emacs 23.4.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.9) of 2012-02-01 on shirley.hoetzel.info

有没有人对如何解决此问题有任何建议?这是我的项目的问题吗?我的CEDET环境? emacs的版本?

1 个答案:

答案 0 :(得分:0)

显然问题是EDE和CEDET不一致。我可以说,我使用的CEDET版本依赖于EDE的旧架构,该架构已被更改。

从最新的源代码树编译CEDET而不是我正在使用的(较旧的)快照修复了问题。