3

因此,在我切换到 emacs 的过程中,我发现放弃 Visual Studio 2010 for C++ 非常困难。尝试为 emacs 设置 cedet 并不容易。所以我使用了 Alex Ott 的温和介绍,我的 init 文件看起来与提供的类似:

(load-file "~/.emacs.d/plugins/cedet/common/cedet.el")
(global-ede-mode 1)     
(semantic-load-enable-excessive-code-helpers)
(require 'semanticdb)
(global-semanticdb-minor-mode 1)
(setq semantic-ectag-program "C:/devel/ctags/ctags58/ctags.exe")
(semantic-load-enable-secondary-exuberent-ctags-support)
(require 'semantic-ia)
(require 'semantic-gcc)
(setq-mode-local c-mode semanticdb-find-default-throttle
                          '(local unloaded system recursive))
(ede-enable-generic-projects)
(global-srecode-minor-mode 1)

一切都很好,但是当我尝试打开一个在同一目录中具有标头 (array_loader.h) 的 cpp 文件并尝试为 register_reader() 方法执行代码完成时:

array_loader al; al.register_reader();

我得到“找不到'array_loader al'的类型”。矛盾的是,自动完成模式可以无缝工作。他们干涉吗?

我刚刚使用 bazaar 检查了 1.1 beta,然后对其进行了字节编译。我没有设置项目,因为我所有的项目都是基于 cmake 的,并且它们没有包含文件的单一路径。我项目的每个子库在同一目录中都有标题。有没有办法解析 CMakeLists.txt 并将该信息提供给 ede 或语义?即使没有这个基本示例也应该有效。难道我做错了什么?

4

1 回答 1

3

好吧,如果有人再次遇到这个问题,我设法通过设置我的 cedet init 文件来解决它,如 Alex Ott 所示:

https://github.com/alexott/emacs-configs/blob/master/rc/emacs-rc-cedet.el

我还定义了我的 cmake 项目并使用递归查找来遍历我的 cmake 项目文件夹以查找标题。仍然很奇怪,项目外部的 cpp 文件如何找不到类/方法的签名,尽管它们是在同一文件夹中的头文件中定义的。语义cdb 油门设置如下

(setq-mode-local cpp-mode semanticdb-find-default-throttle 
                      '(project local unloaded system recursive)) 
于 2011-11-15T22:03:35.290 回答