Как включить поддержку C ++ 11 / C ++ 0x в Eclipse CDT? - PullRequest
208 голосов
/ 03 февраля 2012

Затмение 3.7.1 CDT 1.4.1 GCC 4.6.2

Это пример фрагмента кода C ++ 11:

auto text = std::unique_ptr<char[]>(new char[len]);

Редактор Eclipse жалуется на:

Function 'unique_ptr' could not be resolved

Компиляция Makefile работает нормально. Как заставить Eclipse перестать жаловаться на подобные ошибки?

Ответы [ 16 ]

1 голос
/ 18 декабря 2017

Для меня на Затмение Неон Я следовал Трисмегист ответ здесь выше , ДА Я также добавил дополнительный шаг:

  • Перейти к проекту -> Свойства -> Общие сведения о C ++ -> Препроцессор Включить пути, макросы и т. Д. -> Провайдеры -> Настройки встроенного компилятора CDT Cross GCC, добавить флаг "-std = C ++ 11"

Хит применить и ОК.

Приветствия

Guy.

0 голосов
/ 24 марта 2019

У меня была похожая проблема с использованием Eclipse C ++ 2019-03 для смешанного проекта C и C ++, в котором использовались std :: option и std :: swap.То, что работало для меня, было этим.В проекте Свойства-> Сборка C / C ++-> Настройки-> Настройки инструмента-> Перекрестный компилятор G ++ удалите -std = gnu ++ 17 из Разное и поместите его в Диалект-> Другие флаги диалекта.

0 голосов
/ 03 апреля 2018

Я решил это таким образом на Mac. Я использовал Homebrew для установки последней версии gcc / g ++. Они попадают в / usr / local / bin с include в /usr/local/include.

Я записал CD в / usr / local / bin и сделал символическую ссылку из g ++ @ 7, что угодно, только на g ++, потому что @ bit раздражает.

Затем я пошел в MyProject -> Свойства -> Сборка C / C ++ -> Настройки -> Компилятор GCC C ++ и изменил команду с "g ++" на "/ usr / local / bin / g ++". Если вы решите не делать символическую ссылку, вы можете быть более конкретным.

Сделайте то же самое для компоновщика.

Применить, применить и закрыть. Пусть перестроит индекс. Некоторое время это показывало огромное количество ошибок, но я думаю, что это было при создании индексов. Пока я выяснял ошибки, все они исчезли без дальнейших действий.


Я думаю, не убедившись, что вы также можете перейти в Eclipse -> Properties -> C / C ++ -> Core Build Toolchains и отредактировать их с разными путями, но я не уверен, что это будет делать.

0 голосов
/ 20 ноября 2014

Чтобы получить поддержку C ++ 14 в Eclipse Luna, вы можете выполнить следующие шаги:

  • В C++ General -> Preprocessor Include -> Providers -> CDT Cross GCC Built-in Compiler Settings добавить «-std = c ++ 14»
  • В C++ Build -> Settings -> Cross G++ Compiler -> Miscellaneous добавьте «-std = c ++ 14»

Переиндексируйте ваш проект и в конечном итоге перезапустите Eclipse.Должно работать как положено.

0 голосов
/ 05 мая 2014

Ни взлом, ни более чистая версия не работают для Indigo. Взлом игнорируется, а необходимые параметры конфигурации отсутствуют. Без видимой причины, сборка начала работать после того, как она не работала и не указала причину. По крайней мере, из командной строки я получаю воспроизводимые результаты.

0 голосов
/ 25 июля 2013
  • щелкните правой кнопкой мыши по проекту и перейдите в «Свойства»
  • Сборка C / C ++ -> Настройки -> Настройки инструмента -> Компилятор GCC C ++ -> Разное -> Другие флаги. Поставьте -lm в конце текстового поля других флагов и нажмите ОК.
...