РЕДАКТИРОВАТЬ: Оказывается, это действительно не относится к Eclipse Kepler. Мне пришлось использовать тот же процесс для Eclipse Juno. Проблема заключалась в том, что, похоже, в других сообщениях, отвечающих на этот же вопрос, отсутствуют шаги.
Я использую Eclipse Kepler для C ++, и я пытаюсь использовать C ++ 11 и получаю ошибки. Когда я компилирую, я получаю ошибку
ошибка: циклы на основе диапазона недопустимы в режиме C ++ 98
Я выполнил инструкции из сообщения
Поддержка Eclipse CDT C ++ 11 / C ++ 0x
и решение, данное для Eclipse Juno, не работает.
В разных комментариях предлагалось перезапустить eclipse, очистить и перестроить. Это не имело значения.
источник
-std=c++11
место, где вы сказали, и перестроил полный индекс, все еще показывает кучу нераспознанных std :: cout, std :: set и т. Д.compiler spec
, и все равно не работает. std :: shared_ptr и не распознается. Хотя раньше он работал на более старой машине с juno.Поддержка C ++ 11 в Eclipse Kepler Service Release 1 (идентификатор сборки: 20130919-0819)
В последней версии Eclipse Kepler SR1 вам нужно только добавить -std = c ++ 11
Строка «Команда для получения спецификаций компилятора:» должна выглядеть так:
источник
Начиная с CDT 8.3 ( доступен как обновление Kepler ), в настройках сборки появился новый вариант диалекта:
http://wiki.eclipse.org/CDT/User/NewIn83#Build
источник
Я использую Eclipse Kepler, и чтобы исправить это, я сделал следующее:
1 - Щелкните правой кнопкой мыши Project >> Proprietes >> C / C ++ Build :: Settings
2 - Перешел на компилятор GCC G ++ >> Разное >> Другие флаги
Это устранило мою проблему!
Надеюсь, это помогло!
источник
Запускаем eclipse indigo и cdt 8.0.2 здесь. Я следовал всем руководствам, но все же необходимо было установить определение препроцессора вручную, чтобы найти такие вещи, как std :: unique_ptr. Включаемый файл "memory" это проверяет. Установите для __cplusplus значение 201103L на вкладке «Символы» в разделе «Пути и символы» в «C ++ General» в свойствах проекта.
источник
Добавление флага диалекта «-std = c ++ 11» в свойства проекта-> C / C ++ Build -> Settings -> Tool settings (GCC C ++ Compiler -> Dialect) решило мою проблему в Eclipse Kepler, помимо настроек, указанных выше.
источник
Я использую Eclipse Luna, и в разделе C / C ++ Build -> Settings нет «Настройки инструмента». Я DID добавить -std = C ++ 11 для компилятора Спекуляции командной строки под "/ General C ++ C -> Preprocessor Включает -> Провайдеры" , как предложено. Но это все еще не удовлетворило способность моего индексатора разрешить emplace ().
Итак, я поискал в заголовочном файле и обнаружил, что функции emplace зависят от __cplusplus> = 201103L. Поэтому я просто добавил символ препроцессора «__cplusplus» и присвоил ему значение 201103.
Довольно хакерский, но индексатор доволен. (И make-файлы определяют мои флаги сборки, а не проект eclipse)
источник
Решение, предоставленное MrEricSir, работает только после установки последней версии Eclipse Oxygen CDT. У меня это не работает с Mars CDT.
источник