2

プログラム内を移動するために cedet を使用したいと考えています。私は、semantic-ia-fast-jumpを使用して宣言にジャンプし、semantic-analyze-proto-impl-toggleを使用して実装にジャンプします。この 2 つのコマンドには、同じディレクトリ内のファイルが必要であることがわかりました。したがって、すべてのディレクトリを検索パスに追加する必要があります。私はインターネットから来た男を指します。次のようなコード:

(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 に答える