Eclipse C / C ++ (CDT) импортирует файлы в проект - файл заголовка не найден - укажите путь

Я пытаюсь импортировать файлы в проект Eclipse C и скомпилировать его. Процесс сборки не может найти локальные файлы заголовков. Файлы заголовков находятся в каталоге src. Как я могу отредактировать путь включения в eclipse? Если бы я делал это вручную, я мог бы указать опцию -I в gcc.

Building file: ../src/averaging.c
Invoking: GCC C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/averaging.d" -MT"src/averaging.d" -o"src/averaging.o" "../src/averaging.c"
../src/averaging.c:2:23: fatal error: averaging.h: No such file or directory
compilation terminated.
make: *** [src/averaging.o] Error 1

person eat_a_lemon    schedule 12.12.2011    source источник
comment
Как выглядит ваша #include линия?   -  person Some programmer dude    schedule 12.12.2011


Ответы (4)


  1. Щелкните проект правой кнопкой мыши и выберите свойства.
  2. Выберите C / C ++ General -> Path and Symbols.
  3. Выберите вкладку "Включает".
  4. В списке языков выберите «GNU C» или любую другую цепочку инструментов компилятора C, которую вы используете.
  5. Нажмите кнопку «Добавить ...» и добавьте каталог для включаемых файлов.
  6. Закройте окно «Свойства» и перестройте. Вы должны увидеть, что новый путь используется как -I в процессе сборки.
person Kamyar Souri    schedule 12.12.2011
comment
Привет спасибо за ответ. После того, как я добавил, он все еще не выбирает путь включения. - person eat_a_lemon; 12.12.2011
comment
Нет. Я добавил путь к исходному тексту сборки, но когда я все собираю, -I все еще нет. - person eat_a_lemon; 12.12.2011
comment
Неважно, я добавил его в исходный код сборки вместо GNU C. Спасибо за помощь. - person eat_a_lemon; 12.12.2011
comment
Вы знаете, что означает источник сборки? - person eat_a_lemon; 12.12.2011
comment
ваш код может быть смесью файлов C и файлов сборки. ассемблер используется для компиляции этого в машинный код. Если вы измените настройки источника сборки, это повлияет только на компиляцию файлов сборки. - person Kamyar Souri; 12.12.2011
comment
Очень старый, но все же полезный. Спасибо, приятель. Один балл, пожалуйста. Пришлось добавлять ссылки на все файлы одну за другой. Но в исходном проекте ссылки собирались автоматически. Почему это так? Есть ли какой-либо путь или ссылка, которые я должен обновить или включить, чтобы эта работа работала. Включение путей для каждого отдельного файла заголовка кажется излишним. - person TRoa; 21.11.2018

Ничего из того, что я нашел до сих пор, не помогло, среди прочего добавление пути включения в следующие места не сработало для меня:

  • Проект -> Свойства -> Общие C / C ++ -> Пути и символы -> Включает вкладку -> GCC C
  • Проект -> Свойства -> Общие C / C ++ -> Пути и символы -> Включает вкладку -> GCC C ++
  • Проект -> Свойства -> Сборка C / C ++ -> Настройки: вкладка настроек инструмента -> Компилятор GCC C ++ -> включает
  • Проект -> Свойства -> Сборка C / C ++ -> Настройки: вкладка настроек инструмента -> Компилятор GCC C -> включает

Однако добавление пути включения к:

Проект -> свойства -> C / C ++ General -> Пути и символы -> Включает вкладку -> Сборка

при проверке «добавить ко всем языкам» все же работало.

Как ни странно, последний вариант выполняет все вышеперечисленное - мне не совсем понятно, почему они не работают сами по себе.

Предполагается, что вы не используете make-файл. Если вы это сделаете, то можете забыть об изменениях, перечисленных выше. Eclipse автоматически найдет все необходимые данные путем анализа журналов компилятора. Я думал, что это волшебство, но работает он следующим образом:

  • Построить все из меню проекта - даже если это удастся, некоторые из ваших файлов могут остаться помеченными как «ошибки» из-за неизвестных символов и т. Д., Поэтому вам придется перейти к шагу два:
  • обновить индекс: в окне проекта щелкните правой кнопкой мыши и выберите «Свойства» -> «Индекс» -> «Перестроить». Если проект большой, вы увидите прогресс в правом нижнем углу окна eclipse.

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

person umghhh    schedule 20.07.2012
comment
Если у вас есть конфликтующие настройки в разделе «Сборка» и «C / C ++»: я подозреваю, что индексатор сначала анализирует эти включаемые файлы, используя эти настройки - в которые входят защитные переменные! Затем, когда он обрабатывает для C / C ++, защита включения уже установлена, поэтому вы не видите того, чего ожидали. - person Technophile; 12.02.2019

Alt + Enter, чтобы открыть Свойства.

Откройте C / C ++ Общие -> Пути и символы -> Включает -> Добавить ...

Обратите внимание, что иногда вам нужно выбрать «Это путь к рабочей области» (например, для связанной папки).

person Trevor    schedule 27.07.2019

1.Щелкните исходную папку

2. Выберите «Новый».

3. Далее выберите "Заголовочный файл".

4. Укажите собственное имя с расширением ".h" (например, header.h).

5. Затем выберите "Готово".

6.Затем создайте свою функцию

7. Сохраните файл header.h

8. Затем выберите «Проект» в верхней части консоли.

9. выберите "Создать все".

10. Затем откройте файл с расширением ".c".

11. Напишите #include "header (см. Шаг 4) .h", чтобы использовать файл заголовка.

12. Выполните шаги с 7 по 9.

13. Затем нажмите «Выполнить» в верхней части консоли.

person kn s    schedule 26.10.2019