Как я могу заставить Eclipse индексировать целое дерево исходных текстов C / C ++, которое содержит несколько «make проектов»? - PullRequest
25 голосов
/ 01 сентября 2011

У меня проблемы с получением Eclipse для индексации моего исходного кода. Сейчас я использую Eclipse Helios для Windows XP.

У меня есть каталог с именем src. В нем у меня есть куча папок, примерно такая:

 src
   -include (common headers)
   -lib
     -libIO (source code for this library)
     -libGUI  (source code for this library)
   -pgms
     -pgm1  (source code and headers for this pgm)
     -pgm2  (source code and headers for this pgm)

Каждый лист имеет свой собственный Makefile. В src нет файла Makefile верхнего уровня. pgm1 может включать и включает файлы из include, lib / libIO и lib / libGUI.

По сути, я хочу, чтобы Eclipse проиндексировал весь мой каталог src, без необходимости настраивать проект C / C ++ для каждого листа в моем дереве. Кажется, я не могу найти способ сделать это случается.

Вот мои симптомы; что я пытаюсь решить:

При редактировании исходного кода в каталоге pgm1 он ссылается на функции, которые объявлены в моих заголовочных файлах include dir и определены в исходных файлах, найденных в lib / libIO.

Однако, когда я нажимаю F3, чтобы перейти к объявлению функции, Eclipse говорит: «Не удалось найти символ« X »в индексе». Мне кажется, я не могу заставить Eclipse найти под моим курсором объявление заголовка или определение источника для метода (как это прекрасно делает модуль Java). Это возможно?

Ответы [ 13 ]

0 голосов
/ 06 марта 2015

Если проект уже конвертирован в C / C ++, но индекс все еще не работает, вы можете щелкнуть правой кнопкой мыши по проекту и Index и перестроить.Проект начнет индексацию сразу.

0 голосов
/ 08 сентября 2014

В Coocox IDE (Eclipse + gcc) проблема решается путем перехода из меню файла Правка> Параметры> C / C ++ / Индексатор> Конфигурация сборки для Индексатора, для которой установлено значение Активная конфигурация сборки, и перестройте проект (Ctrl R).

0 голосов
/ 02 сентября 2011

Пожалуйста, попробуйте следующее (мой проект настроен по-другому, поэтому я не уверен, что это будет работать для вас).

Перейдите в Свойства -> Общие сведения о C / C ++ -> Пути и символы -> Местоположение источника.

Вы видите там исходную папку?

Я наблюдаю это поведение: Когда я добавляю исходную папку и затем исключаю ее из сборки, она исчезает из приведенного выше списка. После этого папка больше не индексируется. Повторное добавление его в «Местоположение источника» решает проблему: папка теперь проиндексирована; остается исключенным из сборки (как и предполагалось); виден среди исходных местоположений.

Я считаю, что это ошибка - исключение исходной папки из сборки не должно удалять ее из списка исходных расположений.

...