Semantic не использует файл GTAGS для создания тегов, которые он будет использовать непосредственно для таких функций, как прыжки или интеллектуальное завершение. Глобальный бэкэнд GNU для семантической базы данных будет использовать GTAGS вместо этого в качестве гигантской таблицы имен. Таким образом, если вам нужно найти символ по имени, GTAGS сообщит семантике, где он находится, а Semantic затем сам проанализирует эти файлы, чтобы получить подробности.
Причина, по которой GTAGS не используется напрямую в качестве синтаксического анализатора, заключается в том, что информации в GTAGS недостаточно для видов операций, которые необходимы для семантики, так как она исключает информацию о типе данных, анализ аргументов и анализ локального контекста.
Использование gtags в / usr / include является интересной идеей, но, вероятно, не сильно привыкнет. Semantic будет искать только заголовочные файлы, фактически используемые в вашем коде, вместо поиска всех включаемых файлов. Глобальный бэкэнд GNU предназначен специально для сканирования всего проекта на предмет наличия символов или ссылок на символы. Если вы хотите выполнить поиск символа во всех ваших включениях, это будет полезно, но в настоящее время в Semantic такой функции нет.
Можно использовать ebrowse, чтобы делать то, что вы хотите, но я обнаружил, что для C ++ синтаксический анализатор был недостаточно тонким и вызвал некоторые проблемы.
Если вы считаете, что семантический синтаксический анализатор неточен, то вы должны опубликовать это как ошибку в списке рассылки cedet-devel.