Как включить синтаксис С++ 11 в Eclipse Neon?

Я разрабатываю код C + 11 в Eclipse Neon и заметил сегодня, что диапазон, основанный на цикле, введенном в C + 11, подсвечивается красным IDE, указывающим, что он не распознает его.

Я нашел несколько ссылок о том, как это сделать для более старых версий CDT, таких как эта (поддержка Eclipse CDT С++ 11/С++ 0x). Вы можете видеть, хотя нет вкладки "Настройки инструмента".

enter image description here

Может кто-то предложить, как настроить мой проект, чтобы синтаксис С++ 11 был правильно выделен (я использую отдельную систему сборки)

Ответ 1

  1. Щелкните правой кнопкой мыши на своем проекте и выберите "Свойства".
  2. Перейдите к C/C++ Общие и препроцессор Включите пути, макросы и т.д.
  3. Перейдите на вкладку "Поставщики", нажмите на строку настроек компилятора для используемого компилятора.
  4. Добавьте -std = C++ 11 в команду, чтобы получить спецификации компилятора.
  5. Применить изменения.

Будет выглядеть примерно так:

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

Ответ 2

Вы также можете сделать следующее

  1. перейти к свойствам проекта (alt enter)
  2. На левой панели выделите "C/C++ Build", сверните его, выберите настройки.
  3. На правой панели выберите и скомпилируйте ваш компилятор в меню "Параметры инструмента", выберите "Диалект", выберите свой стандарт языка из раскрывающегося списка или введите -std = C++ 11 в текстовый ввод "другие диалекты".

С другой стороны,

  1. Свойства → "C/C++ Сборка" → свернуть и выбрать "Настройки"
  2. На вкладке "Параметры инструмента" выберите свой компилятор и выделите поле "Разное".
  3. добавьте -std = C++ 11 в поле ввода "Другие флаги".

Ответ 3

По причинам, которые я не понимаю, при поиске подсказок относительно того, почему мой Eclispe Oxygen + CDT 9.3.2, работающий на Fedora 27, не смог надежно отладить мой код, Google поставил этот вопрос/ответ как что-то, на что посмотреть.

В основном моя проблема заключалась в том, что довольно простая программа C++, использующая функции C++ 11 (в частности shared_ptr), была отлаживаемой в Eclipse Oxygen 2 + CDT 9.3.2 поверх Fedora 27 (у которой есть версия gdb 8.0. 1, установленный из стандартного пакета repo). Включение нескольких вызовов методов привело к проверке сеанса отладки, ничего не происходит, завершение Eclipse для восстановления.

Если я отлаживал двоичный код с помощью gdb в командной строке, все было хорошо; Я мог установить точки останова и т.д., Все работало так, как должно. Но изнутри Eclipse ничего не делает.

Однако включение -std = C++ 11 в настройки проекта, как показано Андреасом, решило проблему. Я очень мало понимаю, почему. Я думал, что поставил бы это на случай, если кто-то другой столкнется с подобной проблемой.

g++ - версия 7.2.1

Ответ 4

По какой-то причине редактирование глобальных настроек компилятора c++ не помогло мне. Следуя инструкциям по изменению настройки для конкретного проекта, это работало. См. Eclipse CDT c++ 11/c++ Поддержка 0x