2013-04-26 3 views
0

Я загрузил свою программу с моего школьного сервера, чтобы работать над ней в автономном режиме. У меня GNU установлен, но когда я пытаюсь скомпилировать его на моем Mac с помощью моего Makefile, и я получаю эту ошибку:Что требуется в C++ для компиляции -std = C++ 0x?

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

Я предполагаю, что я пропускаю плагин или что-то на моем Mac?

Благодаря

+1

@Jerry: Я бы не назвал 'clang' * wrong * - у него есть лучшая поддержка C++ 11. Но это другое, и не будет работать с теми же параметрами. –

+0

Что? Я использую компилятор GNU. – JGeis

+1

Хорошо, тогда какая версия GCC вы установили? 'clang' - очень хороший выбор для программирования на C++ 11. Поддержка лучше, и сообщения об ошибках легче понять. –

ответ

0

-std=c++0x является вариантом для G ++. clang - это компилятор Mac, и похоже, что флаг не нужен.

Фактически, clang действительно поддерживает тот же -std=c++11 вариант.

+0

О, хорошо спасибо. Так что мне нужно исправить? – JGeis

+0

Установите переменную $ CXX в ваш make-файл на 'clang ++', возможно. –

0

Проверьте страницы руководства для любой версии gcc, которую вы установили, чтобы подтвердить, что поддерживает этот аргумент.

Редактировать: Просто уточнить, потому что никто еще не объяснил это. C++ 0x относится к функциям, которые являются частью нового стандарта, так сказать, «современные». На страницах gcc man:

c++0x The working draft of the upcoming ISO C++ 0x standard. This option enables experimental features that are likely to be included in C++ 0x. The working draft is constantly changing, and any feature that is enabled by this flag may be removed from future versions of GCC if it is not part of the C++ 0x standard.

+0

Хорошо, что он говорит 4.2, но 4.8 является текущей стабильной версией? – JGeis

+2

@JGeis Получите новую версию gcc. Если вы хотите использовать стандарт 2011 года, вам понадобится компилятор с 2007 года. –

Смежные вопросы