C ++ 11 с Xcode на Mac OS X Snow Leopard - PullRequest
       0

C ++ 11 с Xcode на Mac OS X Snow Leopard

5 голосов
/ 25 сентября 2011

У меня есть проект, который иногда разрабатывается на Windows / Visual Studio 2010 и использует некоторые функции C ++ 11, и мне нужно иметь возможность разрабатывать / собирать на Mac OS X. Когда я пытался собрать проект с помощью Xcode Iполучил много ошибок вокруг новых функций C ++ 11 и проверил версию gcc, чтобы найти ее довольно старой (4.2).Похоже, Apple пытается заставить разработчиков заплатить ненужное обновление до Lion, отказываясь разрешить загрузку Xcode 4+ на любую другую версию Mac OS, поэтому у меня остался Xcode 3.x.

Как я могу продолжать использовать C ++ 11 на Snow Leopard?Есть ли способ, которым я могу сделать это и сохранить XCode в качестве IDE?

Ответы [ 2 ]

6 голосов
/ 25 сентября 2011

Обновление 25 февраля 2012 г .: Теперь для вас доступно множество функций, с которыми вы можете работать, используя новейший лязг. Может быть, вы можете выбрать 10,6, если используете только языковые функции.Если вам нужны библиотечные функции, вам понадобится 10.7.


с учетом текущего (24 сентября 2011 г.) состояния набора инструментов Xcode, проще всего (IMO) выбрать другой ide или os, если вам нужен c +Поддержка +11.

вилка gcc xcode никогда не будет поддерживать эти функции.clang довольно сильно отстает от функций c ++ 11 (потому что его реализация на c ++ все еще очень нова, а у других компиляторов есть несколько дополнительных лет).следовательно, компиляторы, поставляемые с xcode, в настоящее время не поддерживают достаточного количества функций для разработки на c ++ 11, независимо от используемой версии osx.

вы можете установить более новую версию gcc и довольно легко использовать другую версию.

технически, вы также можете создать плагин для xcode 3 (официально не поддерживается), который вызывает другой компилятор (например, более позднюю версию gcc).этот маршрут был закрыт в xc4 (afaik). Обновление по-видимому, оно все еще доступно в Xc4;см. комментарий idljarn ниже.

для многих проектов проще просто использовать свой Mac для загрузки в Linux или Windows (или использовать виртуализацию).

Ваш последний вариант - компилятор Intel, который может бытьиспользуется в xcode и обеспечивает приличную поддержку c ++ 11 - попробуйте его с xcode перед покупкой, чтобы убедиться, что он соответствует вашим потребностям, хорошо работает с xcode и поддерживает функции c ++ 11, которые использует ваша команда.

наконец, я не думаю, что они делают это за ваши деньги на апгрейд.они действительно не очень хорошо поддерживают xcode для нескольких выпусков - они просто ожидают, что вы останетесь с последними и лучшими версиями, если вам не нужна обратная совместимость;в этом случае вы просто прекращаете обновление.они инвестировали и помогли развитию clang после изменения лицензии gcc.так что да ... osx всегда очень сильно отставал от поддержки c ++ 11, потому что они решили переключиться на другой (очень молодой) компилятор.если вы ждете, пока xcode будет поддерживать c ++ 11, вам придется подождать, пока clang его поддержит, что может занять довольно много времени.

3 голосов
/ 18 января 2012

Я только что видел это сейчас, и я хотел бы сообщить вам об этом. LLVM в настоящее время поставляется с XCode в версии 3 ( Source ). Эта текущая версия очень хороша с поддержкой C ++ 11. Вот ссылка на то, что поддерживается:

http://clang.llvm.org/cxx_status.html

Вы можете сравнить это с текущей поддержкой GCC здесь:

http://gcc.gnu.org/projects/cxx0x.html

Как видите, Clang в настоящее время не сильно отстает, если он вообще поддерживается, с поддерживаемыми функциями нового стандарта. Единственное, что я вижу в связи с этим, - это отсутствие поддержки функций параллелизма, но так обстоит дело с большинством компиляторов C ++ 11 из-за характера его поддержки. Поэтому я надеюсь, что этот ответ не слишком поздний, и вы не сдерживается. Идите, получите последнюю версию XCode и отстрелитесь (Если вы еще этого не сделали;))!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...