Чистый Eclipse Index, он не синхронизирован с кодом - PullRequest
58 голосов
/ 09 июня 2010

Я использую Eclipse с кодом C ++ через связанные ресурсы в Linux.Кажется, что индекс анализа кода поврежден (определение Goto устанавливает курсор рядом с определением, но не на него). При обновлении ресурсов это не исправляется, как и при перезапуске Eclipse.

Есть ли способ очиститьиндексировать и перестроить?

Ответы [ 8 ]

73 голосов
/ 09 июня 2010

Щелкните правой кнопкой мыши свой проект, перейдите в подменю «Индекс» и выберите «Перестроить», «Обновить с измененными файлами» или «Обновить все файлы».

Я не знаю разницы между этими тремя вариантами, но одна из них "Обновление с измененными файлами" или "Освежить все файлы" обычно исправляет это для меня.

Кроме того, я уверен, что вы уже сделали это, но убедитесь, что вы используете последнюю версию Eclipse CDT. Текущие версии, кажется, имеют намного более надежную индексацию, чем предыдущие версии.

34 голосов
/ 01 мая 2012

С http://dev.eclipse.org/mhonarc/lists/cdt-dev/msg10390.html, различия между «Перестроить», «Обновить с измененными файлами» или «Освежить все файлы»:

Перестроить: Работает только для целых проектов.Очищает индекс и индексирует файлы с нуля.При отмене он оставляет пустой или частичный индекс.

Обновление с измененными файлами: работает при выборе ресурса.Проверяет отдельные файлы независимо от того, была ли изменена временная метка или конфигурация сканера, и обновляет индекс для измененных файлов.

Обновить все файлы: работает при выборе ресурса.Обновляет выбранные файлы в индексе.Индекс не очищен, отмена операции безопасна.

19 голосов
/ 10 августа 2012

Перейти к вашему проекту properties -> C++ general -> Indexer.

  • Сделайте это с 'project specific settings',
    (или на 'Configure Workspace Settings...').
  • Снимите выделение 'Enable Indexer', нажмите Apply.
  • Выберите 'Enable Indexer' нажмите Apply.

Это должно полностью уничтожить и перестроить индекс.

11 голосов
/ 09 января 2013

Ничто из вышеперечисленного не сработало для меня (Eclipse Indigo), индекс по-прежнему не работает и отказывается правильно перестраиваться Пока не применено это:

http://slsam2.blogspot.com/2012/02/eclipse-cdt-index-not-working.html

Важнейший элемент связанного поста:

Eclipse больше не рассматривает ваш проект как проект C ++. Выберите меню File/New/Convert to a C/C++ project. Для индексации исходного кода требуется некоторое время.

Мне все еще интересно, как «Затмение» может бесконтрольно выстрелить себе в ногу таким образом. Я подозреваю, что установка дополнительных пакетов может вызвать это. Возможно, поддержка JavaScript в моем случае.

3 голосов
/ 21 апреля 2017

удалить только файл .pdom в каталоге .metadata.plugins \ org.eclipse.cdt.core помогает, индексатор облажался после обновления Neon.2 до Neon.3 и это, кажется, решить проблему. (этот комментарий уже существует выше, но я не могу подтвердить его там).

1 голос
/ 09 июня 2010

Вы пытались добавить -clean в командную строку для исполняемого файла eclipse?

0 голосов
/ 02 марта 2016

Я начал безуспешно пробовать ответы Джоша Келли и ммммм, но, наконец, исправил это, проверив мои пути включения.

Один из способов увидеть их в Project Explorer, развернуть проект, и там должно бытьзапись "Включает".Внутри этого проверьте маленький желтый предупреждающий треугольник на каждом включаемом пути.Если этот треугольник присутствует, затмение, скорее всего, не распознает путь.

Включаемые пути редактируются путем щелчка правой кнопкой мыши на «Ваш проект» в проводнике проектов, затем выберите « Свойства» -> C / C ++ General -> Paths and Symbols -> Includes.

Я вижу три варианта языка: Assembly, Gnu C, Gnu C ++.Выберите правильный, прежде чем начинать добавлять пути (скорее всего, Gnu C ++).После добавления всех путей, -> Apply -> Ok и перестройте индекс, если вас попросят.

Мои ошибочные пути к рабочему пространству выглядели как MyProject / MyProject / folder когда предполагалось, что это будет MyProject / folder .

Для меня представление «Проблемы» всегда медленно обновляется, даже после перестройки индекса.Чтобы убедиться, что ошибка все еще существует, дважды щелкните запись проблемы, чтобы eclipse открыла / перезагрузила рассматриваемый файл.Мне часто кажется необходимым обновить представление «Проблемы».

Я действительно не знаю, испортило ли это затмение или мой scm.В любом случае, надеюсь, это кому-нибудь поможет!

Я использую Luna и собираю с внешним make-файлом.

0 голосов
/ 07 апреля 2015

Eclipse больше не рассматривает ваш проект как проект C ++. Выберите меню Файл / Новый / Преобразовать в проект C / C ++. Для индексации исходного кода требуется некоторое время. работал на меня

...