Как убрать ошибку «неразрешенное включение» для определенного пользователем пути в IDE Eclipse

Я импортировал существующий проект IAR C ++ для ARM в Eclipse IDE с добавленным плагином для цепочки инструментов IAR. Проект импортирован, но некоторые файлы не включены. Это выдает ошибку: «Неразрешенное включение», а текст подчеркнут красным цветом. Я добавил путь к этим файлам, как показано ниже, но все еще есть та же ошибка. Пожалуйста, предложите удалить эту ошибку.

0

Решение

Вам необходимо правильно настроить индексатор Eclipse. Если тип вашего проекта — «Makefile project» (т.е. не какой-либо «управляемый» тип, где вы вводите параметры / флаги компиляции в Eclipse), вы можете сделать это, как описано ниже.

Перейдите к свойствам вашего проекта, затем «Общие сведения о C / C ++»> «Включая пути препроцессора, макросы и т. Д.» и перейдите на вкладку «Провайдеры». Снимите все, кроме:

  • CDT GCC Build Output Parser,
  • Настройки встроенного компилятора CDT Cross GCC (в зависимости от точного типа вашего проекта это должен быть какой-то другой тип — для проекта «Cross GCC» установите флажок «… Cross GCC …»).

Настройте их, как показано на картинках ниже:

введите описание изображения здесь
введите описание изображения здесь

В первом случае вы заменяете:

(gcc)|([gc]\+\+)|(clang)

с:

.*((gcc)|([gc]\+\+)|(clang))

Таким образом, Eclipse будет знать, что все ваши строки, начинающиеся с «… arm-none-eabi-gcc …» или «… arm-none-eabi-g ++ …», являются вызовами компилятора, так что это будет возможность анализировать флаги, включая пути включения (-I флаги). Вы можете изменить параметры Файл / Папка / Проект — в зависимости от вашей конфигурации.

Во втором случае вы заменяете то, что находится в текстовом поле, чем-то похожим на:

arm-none-eabi-${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}" -std=gnu++11 -std=gnu99 -mcpu=cortex-m4 -mthumb

И вам нужно указать правильные флаги, в зависимости от вашего проекта. Вы вводите только те флаги, которые имеют значение для «встроенных настроек компилятора» — это -std, -mcpu, -mthumb, -mfpu и т. Д. Как видите, вы должны вводить флаги для C и C ++ (если вы используете C ++).

Конечно, если ваш префикс компилятора не «arm-none-eabi-», вы должны соответствующим образом изменить параметры.

После этого вы должны полностью перестроить свой проект, чтобы Eclipse мог видеть ВСЕ команды компиляции для ВСЕХ файлов из вашего проекта. Если ваш make-файл скрывает фактические команды (например, он отображает только «CC: some_file.c» вместо полной команды, которая фактически выполняется), эту функцию необходимо отключить (вы можете изменить способ вызова make в свойствах проекта в «C». / C ++ Build «на вкладке» Поведение «в текстовом поле» Build (incremental build) «).

Иногда также необходимо перестроить индекс вручную, поэтому щелкните правой кнопкой мыши свой проект и перейдите в «Индекс»> «Перестроить» (иногда помогают и другие параметры). Закройте все редакторы, возможно, даже закройте проект, и после повторного открытия все должно быть в порядке.

После всех этих шагов вы должны увидеть маленькие «гаечные» иконки на ваших источниках (или папках или целом проекте — в зависимости от того, что вы выбрали в парсере) — после того, как вы щелкнете по такому элементу правой кнопкой, выберите «Свойства» и «C / C ++ General». «>» Препроцессор включает пути, макросы и т. Д. » Вы должны увидеть, что Eclipse обнаружил там:

введите описание изображения здесь

0

Другие решения


По вопросам рекламы [email protected]