Eclipse не может найти файл заголовка, даже если включены пути включения

Это была проблема, с которой мы уже давно имеем дело — мы создаем проект C ++ с использованием цепочки инструментов Cygwin, и независимо от того, что мы добавляем в компилятор C ++, включаем пути в настройках проекта, Eclipse не может найти необходимые заголовочные файлы.

Мы сделали все, что предложило сообщество Stackoverflow;

  • Убедитесь, что включенные пути относились к рабочей области
  • Пробовал обратную косую черту
  • Пробовал использовать специфичные для Cygwin пути (/ cygdrive / c вместо C: /)
  • Проверил выходные данные компилятора, чтобы проверить, есть ли пути включения
  • Проверил сгенерированные make-файлы, чтобы убедиться, что они верны
  • Перестроил индекс
  • Папка отладки полностью удалена
  • перезапустил Eclipse

В принципе ничего, кроме изменения #include <...> сам код, чтобы использовать полный путь (C:/.../file.h) работал. Это не работает для наших нужд, так как нам нужно, чтобы несколько разработчиков могли работать над этим проектом, а сами файлы генерируются динамически в результате некоторых наших процедур сборки.

2

Решение

Итак, вот небольшая забавная деталь об Eclipse, которую мы не знали — сами исходные файлы могут иметь свои собственные настройки.

Если вы посмотрите на исходные файлы и увидите следующий значок гаечного ключа, это означает, что файл имеет некоторые настройки, которые могут противоречить настройкам вашего проекта.

Ключ затмения

В результате наши специфичные для источника настройки переопределяли пути включения, поэтому для этих файлов не удалось найти ни один из заголовков. Самое приятное то, что Eclipse не говорит вам более явно, чем эта — значок гаечного ключа не предлагает подсказку, чтобы объяснить, что происходит.

Simply right click on the file > go to Resource Configurations > Reset to Default...

Ваши заголовочные файлы будут найдены сейчас, при условии, что вы написали правильные пути включения в настройках вашего проекта.

Для справки, мы используем Eclipse Kepler — я не уверен, что они исправили это и добавили больше информации для пользователей в более новых версиях.

3

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

Других решений пока нет …

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