0

Emacs で GNU Globals を動作させようとしましたが、関数定義が見つからないことがわかりました。長い検索の後、GNU グローバル自体がどういうわけか壊れてしまい、ほとんど何もインデックス化されません! 例を考えてみましょう:

$ 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

最後に «myint» を grep しようとしたところ、GTAGS にも存在しないことがわかりました! それが言及されている唯一の場所は GSYMS ファイルです。もちろん、最初は別の «.hpp» ファイルで同じコードを試しましたが、うまくいきませんでした。

更新: ctags と etags の両方でグローバル タグを作成できることがわかりました。そのためには、発行export GTAGSLABEL=/usr/bin/etags (または ctags に対して)して、再度起動する必要がありgtagsます。変数は機能します。間違ったパスを追加することで簡単に確認できるため、gtagsはエラーについて通知します。そのため、私の例で両方のバックエンドを試しましたが、どちらも機能しませんでした。

4

0 に答える 0