[英]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.
我發現了我做錯了什么。 也許這會對某人有所幫助。
我找到了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.