Проект Makefile, импортированный в Eclipse: источники не перечислены и неразрешенные включения

Я пытаюсь импортировать проект C Makefile в Eclipse CDT.

Структура каталогов проекта соответствует следующей схеме:

+--project
|     |
|     +--code
|     |    |
|     |    +--src
|     |    +--inc
|     |
|     +--gcc

Makefile находится в проекте /gcc.

Я импортирую проект, используя обычный рецепт: Файл-> Новый-> Проект...-> Проект C-> Проект Makefile-> Пустой проект (Cross GCC), и я НЕ "использую местоположение по умолчанию", но make-файл моего проекта путь (проект /gcc).

Проект компилируется нормально (Project->Build All), но у меня есть две основные проблемы, которые делают Eclipse непригодным для использования в качестве IDE:

  1. Источники программы не указаны в списке проектов. Кажется, единственное, что перечислено, это содержимое подкаталогов проекта / gcc, а не фактические источники, указанные в Makefile.
  2. "Неразрешенное включение" в каждом заголовке библиотеки источника программы. Правильные пути указаны в Makefile с помощью -I.

Эти две основные проблемы не решаются путем перезагрузки Eclipse после успешной компиляции.

Это заставляет меня задуматься: полностью ли Eclipse игнорирует исходные коды Makefile и пути к компиляторам?

Как это можно решить?

Спасибо!:)

1 ответ

Решение

Eclipse не выполняет синтаксический анализ Make-файлов, чтобы определить, где находятся исходный и заголовочный файлы, какие переменные #defineкакие библиотеки связывать и т. д. По умолчанию Eclipse включает в себя только все из корневого каталога проекта, который в вашем случае выбирается как project/gcc... вы можете включить другие каталоги, если вы действительно хотите, в свойствах проекта:

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

Вместо создания "пустого проекта" вам нужно сделать "Makefile Project с существующим кодом".

Оттуда вы выбираете любой набор инструментов, который вы хотите (включая Cross GCC, если хотите), на каком языке (языках) ваш проект, и местоположение кода, которое projectне project/gcc,

Другие вопросы по тегам