С++ 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?
Ответы
Ответ 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С++.