Вопрос по eclipse, c++ – Как решить «Неразрешенное включение: » в файле C ++ в Eclipse CDT?

66

я скачиваюзатмение для C ++ (Cdt-master-8.0.2.zip).

Когда я пишу:

#include <iostream>

Это отмечает:

Unresolved inclusion: <iostream>

Как я могу это исправить?

@DhaivatPandya: Нет, как я могу это установить? Adam Sh
Смотрите мой ответ ниже. Dhaivat Pandya
Платформа? У вас установлен gcc? Dhaivat Pandya

Ваш Ответ

12   ответов
3

Если вы используете Linux, используйте менеджер пакетов.

Если вы используете Windows, используйтеMinGW.

В этом есть смысл.
Обратите внимание, что я использовал eclipse в течение месяца, работая над проектом, и внезапно все мои заявления #include получили это предупреждение (очевидно, установлен gcc), поэтому установка gcc не является реальным решением.
Установка gcc не всегда достаточна для разрешения включения.
@DhaivatPandya: я думаю, что он означает, что установка gcc - это только один из нескольких необходимых шагов. (Если затмение не может волшебным образом обнаружить, что gcc был внезапно установлен? Возможно, я не знаю)
Решает проблему в 99% случаев. Почему бы не загрузить iostream, если в вашей системе что-то не так? Я думаю, что мы могли бы сказать такой ответ для каждого ответа, например, если это синтаксическая ошибка и кто-то исправляет ее, ответ может быть «это может быть ошибка компилятора». Но шансы на это довольно низкие.
1

Перейти к проекту & gt; Свойства & gt; C / C ++ General & gt; Препроцессор Включает ... & gt; Провайдеры и выберите «Параметры встроенного компилятора CDT GCC Cygwin [Shared]».

12

что ваш файл имеет расширение .cpp, а не .c, у меня просто была эта проблема

2,5 часа поиска и, наконец, решение!
16

и мне нужно добавить явные каталоги для некоторых стандартных библиотек C ++. Щелкните правой кнопкой мыши ваш проект и выберите Свойства. Вы получите диалоговое окно, показанное на изображении. Следуйте изображению и используйте значок +, чтобы явно добавить пути к своим библиотекам C ++.enter image description here

1

кто использует свежую установку Ubuntu или другого дистрибутива Linux, убедитесь, что у вас есть хотя бы пакет & quot; build-essential & quot; прежде чем пытаться скомпилировать проекты Eclipse CDT.

В Терминале введите:

sudo apt-get install build-essential

Этого должно быть достаточно для компиляции и запуска ваших приложений.

Конечно, вы также можете выполнить полную установку g ++, используя:

sudo apt-get install g++
4

но в моем случае мне пришлось вручную указать путь включения файла iostream. Поскольку я использую MinGW путь был:

C: \ MinGW \ Lib \ НКУ \ mingw32 \ 4.8.1 \ включать \ C ++

Вы можете добавить путь в Eclipse под: Проект & gt; C / C ++ General & gt; Пути и символы & gt; Включает & gt; Добавлять. Надеюсь, это поможет

Это помогает мне.
1

Проект & gt; Свойства & gt; C / C ++ General & gt; Препроцессор Включает ... & gt; Провайдеры и выберите «Настройки встроенного компилятора CDT GCC Cygwin» В списке провайдеров проблема решена для меня.

2

CDT GCC Built-in Compiler Settings, На в том числеCDT GCC Built-in Compiler Settings Cygwin парсер узнал мой#include <iostream>.

92

Свойства & gt; C / C ++ General & gt; Препроцессор Включает ... & gt; Поставщики и выберите & quot;CDT GCC Built-in Compiler Settings& Quot ;.

Я не могу поверить, что это действительно сработало. Вау, спасибо!
Для меня, после проверки настроек встроенного компилятора CDT GCC, мне также пришлось проверить следующее & quot; Использовать глобального поставщика, совместно используемого проектами & quot; в & quot; Параметры поставщика настроек языка & quot; прежде чем он узнает мой iostream.
Это плюс ТАКЖЕ снятие галочки со встроенных настроек компилятора Cross-GCC.
Нет, не решает проблему. Существуют ли решения, которые действительно решают проблему?
Это сработало для меня. У меня все еще было странное поведение, подобное Натанаэлю, пока я не удалил проект, не импортировал его заново, не очищал и не перестраивал.
0

Also set "Command to get compiler specs" ${COMMAND} on Linux

Сначала сделайте:

Project Properties C/C++ General Preprocessor Include Paths, Macros, etc. Providers

а такжеthen под: & quot; Команда для получения спецификаций компилятора & quot; заменить:

${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"

с:

g++ -std=c++11 -E -P -v -dD "${INPUTS}"

Иначе, это терпит неудачу с:

Unable to find compiler command in toolchain=cdt.managedbuild.toolchain.gnu.base

Протестировано на Eclipse Photon Release Candidate 3 (4.8.0RC3), Ubuntu 16.04, и этоминимальный Makefile проект с существующими источниками.

1

вы ранее не использовали эту IDE. Прочтите "Затмение" перед тем, как начать ". и следуйте инструкциям к T. Это гарантирует, что Eclipse, который является только IDE, действительно связан с компилятором.

http://help.eclipse.org/indigo/index.jsp?topic=/org.eclipse.cdt.doc.user/concepts/cdt_c_before_you_begin.htm

0

омогло мне. Я описал, что работает для меня в этом другом вопросе:Eclipse CDT: неразрешенное включение заголовка stl.

Похожие вопросы