首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GNU Global和GTAGS找不到类定义

GNU Global和GTAGS找不到类定义
EN

Stack Overflow用户
提问于 2013-01-30 01:11:49
回答 2查看 4.3K关注 0票数 5

我在全局查找类/结构定义时遇到了问题。我可以用丰富的ctag和cscope找到它们。所有标记文件都是从相同的源文件列表构建的。我配置并构建了全局前缀,只指定了--et.al。configure did发现了exhuberant并正在使用它。多年来,我一直在定期尝试global,但它总是有这个问题。有什么想法吗?

谢谢,davep

EN

回答 2

Stack Overflow用户

发布于 2014-11-04 08:16:04

只需导出这个变量,这应该可以做得很好。从gtags的手册页-

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

票数 8
EN

Stack Overflow用户

发布于 2013-01-30 22:50:35

我发现我做错了什么。也许这会对某人有帮助。

  1. 仅仅因为configure发现了丰富的ctag并不意味着它成为默认的解析器。我的前ctags不支持--gtags,也许这就是原因。在我的例子中,默认的解析器是native/builtin.
  2. The本机解析器,它只将.h视为C,并且不查找C++构造。奇怪的是,它也找不到结构。

我找到了两个修复:

1)如果你有丰富的ctag,最好的办法就是把它设为默认值。丰富的默认配置可以正确处理.h文件。如果没有,请使用方法2。在.globalrc中,更改

代码语言:javascript
复制
default:\   
  :tc=native:

to 

default:\   
  :tc=ctags:

2)如果没有丰富的ctag,请编辑.globalrc并将内置解析器的langmap行从

代码语言:javascript
复制
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作为他们的头文件。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14588350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档