Вопрос по xcode, c++, c++11 – У меня возникли проблемы с C ++ 11 в Xcode

5

Я - пользователь Mac OS X Lion, который использует Xcode для C ++, и кажется, что для Xcode нет доступных обновлений. Похоже, я не могу скомпилировать C ++ 11-эксклюзивный код, но по какой-то причине я думал, что Apple получила C ++ 11 в значительной степени реализованный. И да, у меня есть поддержка инструментов командной строки.

Опять же, это может быть только я. Если так, есть ли какая-либо IDE, которая поддерживает C ++ 11, или какой-либо способ обновления?

Xcode 4.2 поставляется с clang, а clang частично поддерживает C ++ 11. Вы можете переключиться на Clang в опциях сборки. user1203803
Вы можете использовать Macports, они поставляют все новейшие версии GCCmacports.org inf

Ваш Ответ

3   ответа
8

C++ language dialect: C ++ 11 или GNU ++ 11

C++ Standart Library: libc ++ (стандартная библиотека LLVM C ++ с поддержкой C ++ 11)

Версия Xcode: 4.3.2

XCode project settings

Не забудьте также выбрать компилятор LLVM.
Это похоже на работу! Спасибо! Whovian
Нам также нужно изменить имя файла с .m на .mm
У меня есть проблема со связью стандартного lib. Если я выберу libc ++ (стандартная библиотека LLVM C ++ с поддержкой C ++ 11), то компоновщик не сможет связать & stot :: string :: find (char, unsigned long) const & quot; и другие символы, если я выберу libstc ++ (стандартная библиотека GNU C ++), то в заголовках будут ошибки компилятора & quot; невозможно найти :: std :: move & quot; , Что я делаю неправильно? Как я могу решить это? Благодарю.
3

есть несколько соответствующих настроек проекта, вам необходимо использовать функции C ++ 11. Во-первых, использовать компилятор clang. Что-то вроде

GCC_VERSION = com.apple.compilers.llvm.clang.1_0

в вашем.xcconfig будет устанавливать его, или вы можете использовать графический интерфейс.

Далее вам нужно указать LLVM, какой стандарт C ++ использовать:

CLANG_CXX_LANGUAGE_STANDARD = gnu++11

Это сделает доступными такие возможности языка, как диапазон, делегированные конструкторы и т. Д.

Наконец, если вы хотите использовать функции C ++ 11 STL (такие какstd::unordered_map) вам нужно использовать libc ++ STL:

CLANG_CXX_LIBRARY = libc++
Если вы не используете файлы .xcconfig, вы можете выбрать файл своего проекта в инспекторе XCode, и вы должны увидеть список параметров, похожих на то, что опубликовал Александр.
Мне очень жаль, я очень новичок, но как именно я это делаю? По-видимому, это команды для LLVM или что-то в этом роде, но я действительно не знаю, что делать. Whovian
0

XCode settings

И он строит без ошибок. Если я установлю libc ++ без указания C ++ Language Dialect, я получу ту же проблему, что и OP

Похожие вопросы