在我转换到emacs的过程中,我发现很难放弃Visual Studio 2010用于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测试版,然后进行了字节编译。我没有设置任何项目,因为我所有的项目都是基于CMake构建的,并且它们没有单个包含文件路径。我的每个子库都在同一个目录中有头文件。是否有一种方法可以解析CMakeLists.txt并将该信息提供给ede或semantic?即使没有这个基本示例也应该能正常工作。我做错了什么吗?