Cc1plus: ошибка: непризнанная опция командной строки "-std = С++ 11" с g++

Я пытаюсь скомпилировать с помощью g++ и флагов -std=c++11 или c++0x.

Однако я получаю эту ошибку

cc1plus: error: unrecognized command line option "-std=c++11"

g++ --version

g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Ответ 1

Увидев из вашей версии g++, вам нужно ее плохо обновить. С++ 11 доступен только с g++ 4.3. Самая последняя версия - 4.7.

В версиях pre-g++ 4.7 вам нужно будет использовать -std=c++0x, для более поздних версий вы можете использовать -std=c++11.

Ответ 2

Цитата из gcc-сайта:

Функции С++ 11 доступны как часть компилятора GCC "mainline" в соединительной линии репозитория GCC Subversion и в GCC 4.3 и более поздних версиях. Чтобы включить поддержку С++ 0x, добавьте параметр командной строки -std = С++ 0x в вашу командную строку g++. Или, чтобы включить расширения GNU в дополнение к расширениям С++ 0x, добавьте -std = gnu ++ 0x в вашу командную строку g++. GCC 4.7 и более поздние версии поддерживают -std = С++ 11 и -std = gnu ++ 11.

Возможно, вы используете версию g++, которая не поддерживает -std=c++11. Вместо этого попробуйте -std=c++0x.

Доступность функций С++ 11 предназначена только для версий >= 4.3.

Ответ 3

вы должны попробовать это

g++-4.4 -std=c++0x or g++-4.7 -std=c++0x

Ответ 4

Я также получил ту же ошибку, компиляция с флагом -D исправлена, попробуйте следующее:

g++ -Dstd = С++ 11