Индексирование Eclipse не работает

Я использую CDT в Eclipse 3.5.2 Galileo в Ubuntu.

Мой eclipse indexer не работает время от времени. Под этим я подразумеваю, когда я ctrl нажимаю на функцию, она говорит Could not find symbol in index. Кроме того, нажатие кнопки F3 приводит к тому же сообщению об ошибке. На самом деле большинство мест он не работает и работает в очень немногих местах.

Я видел некоторые другие версии Eclipse, где в меню "Файл" указан пункт меню Indexing. Как File- > Indexer- > Rebuild.... Но в моем меню File нет такого пункта меню для Indexer.

Будет ли единственный способ использовать какой-либо другой выпуск Eclipse или что-то не хватает? Любые указатели на это были бы полезны.

Ответ 1

В моем случае ничего не сработало и, наконец, я сделал следующее:

 1) Close the project
 2) Delete the project(do not check from disk option)
 3) create new project with existing code(use the deleted project path)
 4) Successfully indexed my c++ code

Ответ 2

Чтобы добавить пути, содержащие код для разбора, выполните следующие действия:
1. Щелкните правой кнопкой мыши по проекту
2. Выберите Свойства
3. Перейдите на C/С++ Общие
4. Перейдите к пути и символам
5. Если пути отсутствуют, добавьте пути.

Чтобы повторно проанализировать код, выполните следующие действия:
1. Щелкните правой кнопкой мыши по проекту
2. Выберите Индекс
3. Восстановить

Если это не сработает, вам не повезло. С++ - очень сложный язык для разбора.

Ответ 3

Если ваш индексатор застрял и зависает на бесконечное время, вы можете удалить связанные с индексатором файлы вашего проекта из .metadata. Убедитесь, что затмение не работает в это время.

.metadata находится как скрытая папка в пути вашего рабочего пространства.

Там вы можете перейти к:

<workspace_path>/.metadata/.plugins/org.eclipse.core.runtime/.settings/

Внутри .settings/ находятся файлы .prefs которых хранятся настройки каждого проекта в отдельности.

Например: org.eclipse.cdt.core.prj-test-project.prefs хранит настройки проекта test-project

Откройте этот файл в текстовом редакторе и удалите все строки, начинающиеся с indexer. Это сбросит настройки индексатора для этого конкретного проекта по умолчанию.

Кроме того, вы можете удалить все строки, начинающиеся с indexer из org.eclipse.cdt.core.prefs; Это приведет к сбросу настроек индексатора для всего рабочего пространства.

Ответ 4

Я считаю, что вы можете очистить индекс, запустив:

rm .metadata/.plugins/org.eclipse.jdt.core/*.index

И затем перезапустите Eclipse. Затем он восстановит свой индекс.

Это работало для меня в Java-проекте, но я представляю себе тот же индекс для всех типов проектов (большинство?).

Ответ 5

Вы можете попробовать перестроить индекс. Щелкните правой кнопкой мыши проект в представлении проекта. Тогда Index -> Rebuild.

Ответ 6

Вот решение, которое я использовал после Project->C++ Index->Rebuild. Этот трюк не позволяет удалить текущий проект:

1) Copy the current project (Right click->Copy from Project Explorer)
2) Paste it (Right click->Paste from Project Explorer) and give the copy another name
3) The indexer should now start and index both projects
4) When indexation is complete, you can delete the copy

PS: Убедитесь, что ваш оригинальный проект является реальным проектом С++, или это, очевидно, не сработает.

Ответ 7

Преобразуйте проект в C или C++ nature:

Right click on project: New> Convert to C/C++ Project

In "Convert to C or C++": выберите проект C/C++.

In "Project options": разделе "Параметры проекта In "Project options": установите флажок "Указать тип проекта"

...Project Type: Выберите "Makefile project"

...Toolchains: GCC Gross

Ответ 8

У меня возникла та же проблема, и оказалось, что папка индекса принадлежала пользователю root (по какой-то причине я должен был запустить Eclipse как root). Я восстановил папку проекта, используя sudo chown -R username projectfolderpath и проблема решена.

Ответ 9

Для меня это сработало:

  • Щелкните правой кнопкой мыши и закройте проект
  • Откройте проект снова
  • Щелкните правой кнопкой мыши и выберите Index-> Перестроить

Надеюсь, это кому-нибудь поможет.

Ответ 10

  1. Выполните eclipse.exe -clean -refresh, где установлено eclipse.
  2. Создайте новый проект C/C++ в Eclipse с заданным путем к папке с исходным кодом. (Не с новым проектом на основе существующего рабочего пространства)

Вышеуказанные шаги работали на меня.