2012-08-09 167 views
2

我想用CEDET在我的计划中导航。我用语义-IA-快跳跳到声明,语义分析,原IMPL拨动跳转到执行。我发现这两个命令需要在同一个目录中的文件。所以我需要将所有的目录添加到搜索路径中。我指的是一个来自互联网的人。代码如下:路径配置通过CEDET

(setq semanticdb-project-roots (list (expand-file-name "~/")))  
(defconst cedet-user-include-dirs  
    (list "~/samuel/project/modules/MManage/inc"  
     "~/samuel/project/modules/MManage/src"  
     ... 
    ))  
(require 'semantic-c nil 'noerror)  
(let ((include-dirs cedet-user-include-dirs))  
    (mapc (lambda (dir)  
     (semantic-add-system-include dir 'c++-mode)  
     (semantic-add-system-include dir 'c-mode))  
      include-dirs))   

我有几个模块,所以我需要添加很多目录。它不是集中式的,也不是便携式的。我认为这一定是一种很好的配置方式。

PS:是指http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html#sec6
我的设置像下面

(ede-cpp-root-project "library_samuel" 
:name "library_samuel project" 
:file (expand-file-name "~/samuel/project_self/library_samuel/CMakeLists.txt") 
:include-path '("/common/include" "/modules/MManage/inc" "/modules/ImageProcess/inc") 
:spp-table '(("BUILD_APP" . ""))) 

语义-IA-快速跳可以很好地工作,但语义分析,原IMPL拨动可以”工作。看来,头文件和源文件必须位于相同的目录中。如何解决这个问题呢。

回答

2

最好是安装项目(看my article on CEDET,例如)。而该项目里面,你可以参考使用include-path指令

+0

感谢亚历克斯·奥特相对路径,我之前看了你的文章。那段时间,我不了解“如何定制语义以与C&C++项目一起工作”的部分。我认为它属于EDE。而我只需要语义部分。再次感谢 – Samuel 2012-08-10 02:38:59

+0

嗨Alex Ott。我已经设置了“义德-CPP-根工程”像你说的 现在是没有问题的,跳转到声明。但它不能用于定义的“语义分析 - 原型 - 内联 - 切换”。我发现只有头文件和源文件在同一个目录中。它可以工作。 – Samuel 2012-08-10 06:34:35

+0

这是我的设置: (EDE-CPP-根工程 “library_samuel” :名 “library_samuel项目” :文件(扩展文件名 “〜/萨穆埃尔/ project_self/library_samuel /的CMakeLists.txt”) :包括路径“( “/普通/” “包括/模块/ MManage/INC” \t \t \t \t \t \t \t \t \t “/模块/ ImageProcess /公司”)) – Samuel 2012-08-10 06:36:53