Eclipse C++: символ 'std' не может быть разрешен
Я получаю эту ошибку в TestExecute.cpp -
"Символ" std "не может быть разрешен"
КОД
#include <iostream>
using namespace std;
Я только что создал исполняемый проект в Eclipse (в Windows 7), как показано ниже. Кажется, я выбираю цепочку инструментов, которая не поддерживается. Это так? Я установил Cygwin и он доступен в настройках.
РЕДАКТИРОВАТЬ: на основе комментария @RobertoWilko, удаление строки "using namespace std; " удалило ошибку. Но двоичный файл не создан. "Ошибка запуска. Двоичный файл не найден". Как это исправить?
11 ответов
Попробуйте этот шаг: https://www.eclipse.org/forums/index.php/t/636348/
В основном: "Перейти к проекту -> Свойства -> Общие сведения о C / C++ -> Пути препроцессора, включить пути, макросы и т. Д. -> Провайдеры -> Параметры встроенного компилятора CDT GCC, деактивировать Использовать глобальный поставщик, общий для проектов, и добавить командную строку аргумент -std= C++11.
Я не знаю, решили ли вы эту проблему, но я хочу опубликовать свое решение для тех, кто может столкнуться с той же проблемой.
Во-первых, убедитесь, что у вас есть папка "Включает" в вашем Project Explorer. Если у вас его нет, переходите ко второму шагу. Если у вас есть, перейдите к третьему шагу.
Во-вторых, Window -> Preferences-> C/C++ -> Build> Environment: создайте две переменные окружения:
имя:
C_INCLUDE_PATH
Значение:/usr/include
б) Имя:
CPLUS_INCLUDE_PATH
Значение:/usr/include/c++
Идти к Cygwin/usr/include/
, если вы не можете найти папку "C++", скопируйте ее из \cygwin\lib\gcc\i686-pc-cygwin\X.X.X\include
а затем перезапустите свое затмение.
- В-третьих, щелкните правой кнопкой мыши свой проект в Project Explorer -> Свойства -> Общие сведения о C/C++ -> Пути и символы -> Включает -> Языки:GNU C++ Если вы можете найти некоторые папки C++ в "Включить каталоги", нажмите "Применить" и OK, Измените немного свои коды и сохраните их.
Вы найдете там не будет символом не может быть решены проблемы.
Я задокументировал свое решение, надеясь, что кто-то может получить выгоду.
Вы можете переписать код так:
#include<iostream>
#include<stdio.h>
using namespace std;
Для MinGW это сработало для меня:
- Щелкните правой кнопкой мыши проект, выберите
Properties
- Идти к
C/C++ General
-Paths and Symbols
-Includes
-GNU C++
-Include directories
- Выбрать
Add...
- Выбрать
Variables...
- Выбрать
MINGW_HOME
и нажмитеOK
- Нажмите
Apply
а такжеOK
Теперь вы должны увидеть несколько путей MinGW в Включениях в проводнике проекта.
Ошибки могут исчезнуть не сразу, вам может потребоваться обновить / построить свой проект.
Если вы используете Cygwin, может существовать эквивалентная переменная.
Папка include в проекте, вероятно, отсутствует /usr/include/ C++. Перейдите в свой проект в проводнике проекта, щелкните правой кнопкой мыши -> Свойства -> C\C++ Build -> Среда -> Добавить -> Значение = /usr/include/ C++. Перезапустите затмение.
То, что позволило мне решить проблему, собиралось: Проект -> Свойства -> Общие сведения о C/C++ -> Включение путей препроцессора, макросы и т. Д. -> Провайдеры -> Настройки встроенного компилятора CDT GCC, включение и отключение CDT Настройки встроенного компилятора Cross GCC
Установите C++ SDK:
Справка> Установить новое программное обеспечение> Работать с: path for your eclipse version
> найдите C++ и установите инструменты разработки C++ SDK.
Пример для пути: Mars - http://download.eclipse.org/releases/mars
Это сработало для меня в Eclipse IDE для разработчиков C / C++ Версия: 2020-03 (4.15.0) Идентификатор сборки: 20200313-1211. Кроме того, мой код скомпилирован.
- Создайте новый проект, убедившись, что он создан как кросс-скомпилированное решение. Вам необходимо добавить каталог /usr/bin, соответствующий расположению вашего кросс-компилятора.
- Добавьте заголовки C и C++ для кросс-компилятора в свойствах проекта.
- Для C: Проект> Свойства> Общие C / C++> Пути и символы> Включает> GNU C. Добавить... -> Путь к вашему каталогу / usr / include из вашего кросс-компилятора.
- Для C++: Проект> Свойства> Общие C / C++> Пути и символы> Включает> GNU C++. Добавить... -> Путь к вашему каталогу / usr / include / C++ / из вашего кросс-компилятора.
Если вы не знаете свою версию gcc, введите это в консоли (убедитесь, что это ваш кросс-бинарный файл gcc):
gcc -v
Измените диалект кросс-компиляторов (это была уловка).
- Для C: Проект> Свойства> Сборка C / C++> Настройки> Настройки инструмента> Компилятор Cross GCC> Диалект. Установите ISO C99 (-std=C99) или любой другой, подходящий для вашего стандарта файлов C.
- Для C++: Проект> Свойства> Сборка C / C++> Настройки> Настройки инструмента> Компилятор Cross G++> Диалект. Установите ISO C++14 (-std= C++14) или любой другой, подходящий для вашего стандарта файлов C++.
- При необходимости повторно проиндексируйте весь свой проект, щелкнув проект правой кнопкой мыши> Индекс> Перестроить.
У меня была эта проблема с использованием Eclipse Neon на Kubuntu с ядром 16.04, мне пришлось поменять свой #include <stdlib.h>
в #include <cstdlib>
это сделало пространство имен std "видимым" для Eclipse и устранило ошибку.
Мне кажется, что проблема, о которой вы сообщаете, вызвана следующим:
- Вы пытаетесь скомпилировать код C, и исходный файл имеет расширение.cpp
- Вы пытаетесь скомпилировать код C++, а исходный файл имеет расширение.c
В такой ситуации Eclipse не может распознать правильный компилятор для использования.
Попробуйте сначала перезапустить Eclipse, в моем случае я меняю другие настройки компилятора проекта, после чего отображается это сообщение, после перезапуска все работает.