Eclipse CDT: неразрешенное включение заголовка stl

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

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

#include <vector>

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

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

#include <vector.h>

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

Ответ 1

Это позволило мне избежать ошибки Eclipse "Неразрешенное включение".

В моем случае мне пришлось найти местоположение вектора вектора С++ на моем компьютере (который является 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"

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

Ответ 2

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

Ни одно из других решений (play with include path и т.д.) не работало для меня для типа 'string', но это исправляло его.

Ответ 3

память и память .h не относятся к одному и тому же источнику.

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

Есть ли у вас право включать источник в ваши настройки проекта?

Ответ 4

В 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++ Build" - "Редактор цепочек инструментов" и выберите "Cygwin GCC" в качестве "Текущей цепочки инструментов": Project Properties - Tool Chain Editor
    • Перейдите к "C/C++ General" - "Prepcessor Include Paths, Macors и т.д.", На вкладке "Provider" выберите:
      • "Настройки пользователей CDT" (они нужны мне для других включений, таких как тесты Google, на которые я ссылался вручную);
      • "Настройки встроенного компилятора CDT GCC Cygwin". Project Properties -Providers