2

我想使用 cedet 在我的程序中导航。我使用semantic-ia-fast-jump跳转到声明,并使用semantic-analyze-proto-impl-toggle跳转到实现。我发现这两个命令需要同一目录中的文件。所以我需要将所有目录添加到搜索路径中。我指的是网上的一个人。代码如下:

(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" . "")))

semantic-ia-fast-jump可以正常工作,但semantic-analyze-proto-impl-toggle不能正常工作。似乎头文件和源文件必须在同一目录中。如何解决这个问题呢。

4

1 回答 1

2

最好设置项目(例如,查看我关于 CEDET 的文章)。include-path在项目内部,您可以使用指令引用相对路径

于 2012-08-09T13:29:54.090 回答