簡體   English   中英

GNU Global和GTAGS找不到類定義

[英]GNU Global and GTAGS can't find class definitions

我在查找類/結構定義時遇到全局問題。 我可以用豐富的ctags和cscope找到它們。 所有標記文件都是從同一源文件列表構建的。 我配置並構建了global,et.al。,只指定了--prefix。 configure確實找到了exhuberant並正在使用它。 多年來我一直在定期嘗試全球化,而且總是遇到這個問題。 有任何想法嗎?

謝謝,戴維

只需導出這個變量就可以了。 gtags的手冊頁 -

GTAGSFORCECPP If this variable is set, each file whose suffix is 'h' is treated as a C++ source file.

我發現了我做錯了什么。 也許這會對某人有所幫助。

  1. 僅僅因為configure找到了旺盛的ctags並不意味着它使它成為默認的解析器。 我的ex ctags不支持--gtags,也許這就是原因。 在我的情況下,默認的解析器是native / builtin。
  2. 本機解析器僅將.h視為C並且不查找C ++構造。 奇怪的是,它也沒有找到結構。

我找到了2個修復:

1)最好的,如果你有豐富的ctags,是默認的。 充滿活力的默認配置正確處理.h文件。 如果沒有,請使用方法2.在.globalrc中,更改

default:\   
  :tc=native:

to 

default:\   
  :tc=ctags:

2)如果你沒有充滿活力的ctags,請編輯.globalrc並更改內置解析器的langmap行

builtin-parser:\
 :langmap=c\:.c.h,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.cc.hh.cpp.cxx.hxx.hpp.C.H,php\:.php.php3.phtml:

to

builtin-parser:\
 :langmap=c\:.c,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.cc.hh.h.cpp.cxx.hxx.hpp.C.H,php\:.php.php3.phtml:

即刪除.h與C的關聯並將其與C ++關聯。 這可能會導致C .h文件出現問題。 如果是這樣,您可能需要將所有 C ++ .h文件重命名為.hh,.hpp,.hxx等,如langmap中所示。

根據我使用C ++的經驗,看起來大多數人仍然使用.h作為頭文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM