Как включить синтаксис С++ 11 в Eclipse Neon?
Я разрабатываю код C + 11 в Eclipse Neon и заметил сегодня, что диапазон, основанный на цикле, введенном в C + 11, подсвечивается красным IDE, указывающим, что он не распознает его.
Я нашел несколько ссылок о том, как это сделать для более старых версий CDT, таких как эта (поддержка Eclipse CDT С++ 11/С++ 0x). Вы можете видеть, хотя нет вкладки "Настройки инструмента".
Может кто-то предложить, как настроить мой проект, чтобы синтаксис С++ 11 был правильно выделен (я использую отдельную систему сборки)
Ответы
Ответ 1
- Щелкните правой кнопкой мыши на своем проекте и выберите "Свойства".
- Перейдите к C/C++ Общие и препроцессор Включите пути, макросы и т.д.
- Перейдите на вкладку "Поставщики", нажмите на строку настроек компилятора для используемого компилятора.
- Добавьте -std = C++ 11 в команду, чтобы получить спецификации компилятора.
- Применить изменения.
Будет выглядеть примерно так:
${COMMAND} -E -P -v -dD "${INPUTS}" -std=c++11
Ответ 2
Вы также можете сделать следующее
- перейти к свойствам проекта (alt enter)
- На левой панели выделите "C/C++ Build", сверните его, выберите настройки.
- На правой панели выберите и скомпилируйте ваш компилятор в меню "Параметры инструмента", выберите "Диалект", выберите свой стандарт языка из раскрывающегося списка или введите -std = C++ 11 в текстовый ввод "другие диалекты".
С другой стороны,
- Свойства → "C/C++ Сборка" → свернуть и выбрать "Настройки"
- На вкладке "Параметры инструмента" выберите свой компилятор и выделите поле "Разное".
- добавьте -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