Eclipse / g ++ не распознает «-std = c ++ 11» флаг

Я использую CentOS 6.6 x64 с Eclipse Luna и g ++ 4.7.2 (предоставлено devtoolset-2). Я использую встроенную в Eclipse автоматическую генерацию Makefile.

Я включил g ++ 4.7.2 с помощью scl enable devtoolset-2 bash

[me @ dev ~] # g ++ — версия
g ++ (GCC) 4.7.2 20121015 (Red Hat 4.7.2-5)
Copyright (C) 2012 Free Software Foundation, Inc.
Это бесплатное программное обеспечение; см. источник для условий копирования. Здесь нет
гарантия; даже не для ИЗДЕЛИИ или ФИТНЕСА ДЛЯ ОСОБЕННОЙ ЦЕЛИ.

К сожалению, при компиляции Eclipse выдает ошибки, говоря, что «-std = c ++ 11» не является допустимым вариантом. Я установил диалект в свойствах проекта >> Сборка C / C ++ >> Настройки >> Диалект >> «Другие флаги диалекта» со значением «-std = c ++ 11».

Вызов: GCC C ++ Compiler make: *** Ожидание незавершенных работ ….
g ++ -std = c ++ 11 …. cc1plus: ошибка: нераспознанный параметр командной строки
«-Std = C ++ 11»

Я пытался использовать опцию «Стандарт языка» с «-std = c ++ 0x», но он выдает ошибки при компиляции

map<int, MyObject*> myObjectMap;
// assume I've added in objects before the loop
for (const auto& kv : myObjectMap) // line 249
{
// do things
}

249: ошибка: ожидаемый инициализатор до токена ‘:’

3

Решение

Если вы хотите, чтобы Eclipse работал с установленным devtoolset-2вам нужно запустить Eclipse из среды, которая имеет devtoolset включен. Очевидно, это можно сделать из терминала с

scl enable devtoolset-2 eclipse &

Объяснить: devtoolset устанавливается в качестве альтернативной среды разработки, которая не активен по умолчанию. Только при явной активации вы получите новую версию компилятора, которая понимает -std=c++11 и функции, которые вы искали.

3

Другие решения


По вопросам рекламы [email protected]