Проект Makefile, импортированный в Eclipse: источники не перечислены и неразрешенные включения
Я пытаюсь импортировать проект C Makefile в Eclipse CDT.
Структура каталогов проекта соответствует следующей схеме:
+--project
| |
| +--code
| | |
| | +--src
| | +--inc
| |
| +--gcc
Makefile находится в проекте /gcc.
Я импортирую проект, используя обычный рецепт: Файл-> Новый-> Проект...-> Проект C-> Проект Makefile-> Пустой проект (Cross GCC), и я НЕ "использую местоположение по умолчанию", но make-файл моего проекта путь (проект /gcc).
Проект компилируется нормально (Project->Build All), но у меня есть две основные проблемы, которые делают Eclipse непригодным для использования в качестве IDE:
- Источники программы не указаны в списке проектов. Кажется, единственное, что перечислено, это содержимое подкаталогов проекта / gcc, а не фактические источники, указанные в Makefile.
- "Неразрешенное включение" в каждом заголовке библиотеки источника программы. Правильные пути указаны в Makefile с помощью -I.
Эти две основные проблемы не решаются путем перезагрузки Eclipse после успешной компиляции.
Это заставляет меня задуматься: полностью ли Eclipse игнорирует исходные коды Makefile и пути к компиляторам?
Как это можно решить?
Спасибо!:)
1 ответ
Eclipse не выполняет синтаксический анализ Make-файлов, чтобы определить, где находятся исходный и заголовочный файлы, какие переменные #define
какие библиотеки связывать и т. д. По умолчанию Eclipse включает в себя только все из корневого каталога проекта, который в вашем случае выбирается как project/gcc
... вы можете включить другие каталоги, если вы действительно хотите, в свойствах проекта:
щелкните правой кнопкой мыши имя проекта > Свойства> Общие сведения о C/C++> Пути и символы> вкладка "Местоположение источника"> "Добавить папку".
Вместо создания "пустого проекта" вам нужно сделать "Makefile Project с существующим кодом".
Оттуда вы выбираете любой набор инструментов, который вы хотите (включая Cross GCC, если хотите), на каком языке (языках) ваш проект, и местоположение кода, которое project
не project/gcc
,