gpt4 book ai didi

tags - GNU Global 和 GTAGS 找不到类定义

转载 作者:行者123 更新时间:2023-12-02 01:05:52 24 4
gpt4 key购买 nike

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

谢谢,戴夫

最佳答案

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

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

我发现了 2 个修复:

1) 如果您有丰富的 ctag,最好的办法就是将其设为默认值。丰富的默认配置可以正确处理 .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 作为头文件。

关于tags - GNU Global 和 GTAGS 找不到类定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14588350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com