因此,在我切换到emacs的过程中,我发现很难放弃Visual Studio2010 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)一切都很好,但是当我试图打开一个cpp文件,它在同一目录中有一个头文件(array_loader.h),并试图为register_reader()方法完成代码时:
array_loader al; al.register_reader();我得到“找不到'array_loader al‘的类型”。矛盾的是,自动完成模式可以无缝地工作。他们有干扰吗?
我刚刚用bazaar检查了1.1测试版,然后字节编译了它。我没有设置项目,因为我的所有项目都是基于cmake的,并且它们没有包含文件的单一路径。我的项目的每个子库都有相同目录中的头文件。有没有一种方法可以解析CMakeLists.txt并将信息提供给ede或语义?即使没有这个基本的例子,也应该可以工作。我做错了什么吗?
发布于 2011-11-16 06:03:35
好吧,如果有人再次遇到这个问题,我设法通过设置我的cedet init文件来解决它,正如Alex Ott所指出的:
https://github.com/alexott/emacs-configs/blob/master/rc/emacs-rc-cedet.el
此外,我定义了我的cmake项目,并使用递归find遍历我的cmake项目文件夹来查找头文件。奇怪的是,为什么项目外部的cpp文件找不到类/方法的签名,尽管它们是在同一文件夹中的头文件中定义的。语义set节流阀的设置如下
(setq-mode-local cpp-mode semanticdb-find-default-throttle
'(project local unloaded system recursive)) https://stackoverflow.com/questions/7989540
复制相似问题