Emacs GNU全局没有看到一个变量

Emacs GNU全局没有看到一个变量,emacs,code-completion,gnu-global,Emacs,Code Completion,Gnu Global,我试图在Emacs中使用GNUglobals,但发现它无法找到函数定义。经过长时间的搜索,我最终发现GNU Globals本身对我来说只是有点崩溃,它几乎没有索引任何东西!考虑一个例子: $ cat test.cpp class Foo { public: int myint; short myshort; char mychar; }; int main() { Foo obj; obj.myint = 0; return 0; } $ gt

我试图在Emacs中使用GNUglobals,但发现它无法找到函数定义。经过长时间的搜索,我最终发现GNU Globals本身对我来说只是有点崩溃,它几乎没有索引任何东西!考虑一个例子:

$ cat test.cpp 
class Foo {
public:
    int myint;
    short myshort;
    char mychar;
};

int main() {
    Foo obj;
    obj.myint = 0;
    return 0;
}
$ gtags
$ global Foo
test.cpp
$ global myint
$ global -r myint
$ global Foo::myint
$ global -r Foo::myint
$ cat GTAGS | grep myint
最后,我尝试grep«myint»,发现它甚至不存在于GTAGS中!唯一提到它的地方是GSYMS文件。当然,一开始我用一个单独的«.hpp»文件尝试了相同的代码,但也不起作用

更新:我发现可以使用CTAG和ETAG创建全局标记。为此,需要发布export GTAGSLABEL=/usr/bin/etags或到ctags,然后再次启动gtags。变量可以工作,通过添加错误的路径很容易检查,因此gtags会说明错误。因此,我用我的示例尝试了两个后端,但都不起作用。

在这种情况下,您应该使用global-s myint。@syohex-hm,事实上,global-sx myint向我展示了两个位置,其中一个是myint的定义。可能由于某种原因GNU Globall不认可定义。