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

Я пытаюсь использовать 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 ответа

Решение

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

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

find /usr/local -name vector -print

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам