GNU Global и GTAGS не могут найти определения классов

У меня возникают проблемы с получением глобального определения классов / структур. Я могу найти их с обильными ctags и cscope. Все файлы тегов создаются из одного и того же списка исходных файлов. Я настроил и собрал global, et.al., только указав --prefix. configure нашел exhuberant и использует его. Я периодически пробовал глобальные попытки, и у меня всегда была эта проблема. Есть идеи?

спасибо, давеп

2 ответа

Просто экспортируйте эту переменную, и это должно сработать. Со страницы руководства для gtags -

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

Я узнал, что я сделал не так. Может быть, это кому-то поможет.

  1. Тот факт, что configure находит обильные ctags, не означает, что он делает это парсером по умолчанию. Мой бывший ctags не поддерживает --gtags и, может быть, поэтому. Парсер по умолчанию в моем случае был native/builtin.
  2. Собственный парсер обрабатывает.h только как C и не ищет конструкции C++. Как ни странно, он также не находит структур.

Я нашел 2 исправления:

1) Лучше всего, если у вас есть обильные ctags, это сделать его по умолчанию. Обильная конфигурация по умолчанию обрабатывает файлы.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 для своих заголовочных файлов.

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