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