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

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

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

enter image description here

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

4 ответов


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

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

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

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

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

кроме того,

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

по причинам, которые я не понимаю, при поиске подсказок о том, почему мой 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 в командной строке, все было хорошо; я мог установить точки останова и т. д., все работало так, как должно. Но изнутри затмение ничего не делает.

однако включение -std=c++11 в настройки проекта, как показано Андреасом, решило проблему. Я понятия не имею почему. Я думал, что повесил это на случай, если кто-то еще побежит. в похожую проблему.

g++ находится в версии 7.2.1


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