Eclipse CDT: неразрешенное включение заголовка stl - PullRequest
15 голосов
/ 12 мая 2011

Я пытаюсь использовать Eclipse для редактирования исходников, скомпилированных в C ++ Builder, но застрявших с проблемой Unresolved inclusion.

Например, код типа:

#include <vector>

Дает Unresolved inclusion: <vector> ошибку в Eclipse IDE. C ++ Builder действительно не имеет файла vector, вместо этого он имеет vector.h, который используется компилятором.

Eclipse IDE не выдает ошибку, если я пишу

#include <vector.h>

Как мне сказать Eclipse использовать vector.h, когда он видит #include <vector>?

Ответы [ 4 ]

26 голосов
/ 05 октября 2011

Это позволило мне избежать ошибки «неразрешенного включения» в Eclipse.

В моем случае мне нужно было найти расположение заголовка вектора C ++ на моем компьютере (это Mac):

find /usr/local -name vector -print

Я нашел правильное местоположение для включения в папке "/usr/include/c++/4.2.1".Затем я установил параметры затмения своего проекта следующим образом:

Project->Properties->C/C++ General->Paths and Symbols->GNU C++->(Add)->"/usr/include/c++/4.2.1"

Я не использую C ++ Builder, но мое решение может решить часть вашей проблемы.

5 голосов
/ 21 августа 2015

Вы также можете попробовать использовать «Настройки встроенного компилятора CDT GCC».Перейдите в свойства проекта> Общие сведения о C / C ++> Путь включения препроцессора> вкладка «Поставщики», затем установите флажок «Параметры встроенного компилятора CDT GCC», если это не так.

Ни одно из других решений (поиграйте с включенным путем,и т. д.) работал для меня с типом 'string', но этот исправил это.

2 голосов
/ 26 февраля 2018

В Windows, с Eclipse CDT Oxygen, ни одно из описанных здесь решений не работало для меня (включая «Поставщик» - «Настройки встроенного компилятора CDT GCC»). Что работает для меня это:

  • Установите Cygwin с, в частности, следующими пакетами (возможно, не все они строго необходимы для этого):
    • libgcc1
    • cygwin32-gcc-core, cygwin32-gcc-g ++
    • GCC-G ++
    • mingw64-x86_64-gcc-core, mingw64-x86_64-gcc-g ++
  • В свойствах проекта:
    • Перейдите в «Сборка C / C ++» - «Редактор цепочек инструментов» и выберите «Cygwin GCC» в качестве «Текущей цепочки инструментов»: Project Properties - Tool Chain Editor
    • Перейдите к разделу «Общие сведения о C / C ++» - «Пути препроцессора, пути, макросы и т. Д.», На вкладке «Поставщики» выберите:
      • «Настройки пользователей CDT» (они нужны мне для других включений, таких как тесты Google, на которые я ссылался вручную);
      • «Настройки встроенного компилятора CDT GCC Cygwin». Project Properties -Providers
2 голосов
/ 12 мая 2011

memory и memory.h не ссылаются на один и тот же источник.

Один для c, другой для c ++

Имеете ли вы право включать источник в настройки вашего проекта?

...