GNU Global не видят переменные

Я пытался заставить работать GNU Globals в моем Emacs и обнаружил, что он не может найти определения функций. После долгих поисков я обнаружил, что 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

В конце концов я попытался найти "myint" и обнаружил, что его нет в GTAGS! Единственное место, где это упоминается, это файл GSYMS. Конечно, сначала я попробовал тот же код с отдельным файлом ".hpp", он тоже не работал.

ОБНОВЛЕНИЕ: я обнаружил, что можно создавать глобальные теги с ctags и etags. Для этого нужно оформить export GTAGSLABEL=/usr/bin/etags (или в ctags) и запустите gtags снова. Переменная работает, ее легко проверить, добавив туда неправильный путь, поэтому gtags скажет об ошибке. Итак, я попробовал на своем примере оба бэкэнда, и ни один из них не работал.

0 ответов

Другие вопросы по тегам