Подтвердить что ты не робот

С++ 11 на Mac с Clang или GCC

У меня есть Xcode 4.5.2 на Moutain Lion, и я установил последние "средства командной строки", но когда я попытался скомпилировать с помощью g++ или clang++ (и опций -std=c++11 -stdlib=libc++), я получаю сообщение об ошибке, С помощью g++:

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

С clang++:

clang: error: invalid deployment target for -stdlib=libc++ (requires OS X 10.7 or later)

Это в проекте Qt.

Итак, как я могу использовать С++ 11 на моем Mac?

4b9b3361

Ответ 1

Как вы нашли, g++ не поддерживает эти параметры командной строки.

Похоже, вы используете Xcode.

Для clang вы должны посмотреть настройки проекта и убедиться, что для параметра "Цель развертывания" установлено значение 10.7 (или 10.8)

Что сообщение об ошибке сообщает вам, что libС++ недоступен для 10.6 и раньше.

Ответ 2

Я установил gcc-4.7 на свой Mac для работы С++ 11. GCC в своей текущей версии достаточно хорош для поддержки С++ 11, поэтому это должен быть справедливый выбор.

Установка может выполняться Homebrew и не настолько сложна (по крайней мере, я смог это сделать...)

Чтобы установить Homebrew, если у вас его еще нет:

ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"

Теперь запустите

brew doctor

и исправить все возникшие проблемы (для этого есть что-то, написанное в документации на hombrew). Наконец, установите текущий gcc:

brew install gcc

Если все идет хорошо, вы должны иметь доступ к g++-4.7, что позволяет -std=c++0x.

Ответ 3

Попробуйте -std=c++0x, если c++11 не работает. Поддержка опции -std=c++11 относительно новая в GCC, и у вас может не быть достаточно последней версии.

Я бы доверял Marshall по проблеме libС++.