使用 ede-cpp-root-project 时出现 Lisp 错误
最近一段时间我一直在尝试让 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 的版本?
I've been trying to get the CEDET working with a simple project for the last little while. I have the following project file:
(ede-cpp-root-project "aesalon-project"
:name "aesalon-name"
:file "~/projects/aesalon/SConstruct"
:include-path '("/"
"/include/"))
I've been loading the above into a buffer and executing the buffer contents. The problem is not with the project not loading correctly -- it seems to bet set up properly; I can change the settings etc. using the menubar. When I try to rescan the project's files, however, I get the following error:
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)
I find this somewhat odd, as when I look at the documentation for ede-cpp-root-project
I see that it has ede-project
as its parent, not ede-cpp-root
? Or am I misunderstanding the trace? I'm not very familiar with Emacs Lisp.
Here's my output from 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.
And my emacs version: (latest from Arch Linux repositories)
GNU Emacs 23.4.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.9) of 2012-02-01 on shirley.hoetzel.info
Does anyone have any suggestions on how I could go about fixing this issue? Is it a problem with my project? My CEDET environment? Version of emacs?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
显然问题是 EDE 和 CEDET 不一致。据我所知,我使用的 CEDET 版本依赖于 EDE 的旧架构,该架构已被更改。
从最新的源代码树而不是我使用的(旧的)快照编译 CEDET 解决了这个问题。
Apparently the problem is inconsistencies in EDE and CEDET. As best I can tell, the version of the CEDET that I was using was relying on an old architecture of EDE that has since been changed.
Compiling the CEDET from the latest source tree instead of the (older) snapshot I was using fixed the problem.