Обновление Apple g ++ / gcc - PullRequest
       31

Обновление Apple g ++ / gcc

8 голосов
/ 02 октября 2011

В чем разница между Apple gcc и GNU gcc?Является ли Apple gcc надмножеством стандартного?

Информация о версии g ++ в моем OSX показывает:

$ g++ --version
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)

Некоторые из последних функций C ++ 11 представлены в gcc 4.3 / 4.4согласно это .Есть ли более новая версия Apple GCC, на которую я могу перейти.если так, как я могу это сделать?У меня есть Xcode 4.1

Ответы [ 4 ]

6 голосов
/ 02 октября 2011

Помимо уже упомянутых llvm-gcc и clang, есть также поставляемый Apple gcc-4.2 (без бэкэнда LLVM) на /usr/bin/gcc-4.2 в Xcode 4.1.Но не перезаписывайте версии, поставляемые Apple, в /usr/bin.Все три поддерживают расширенный набор функций, включая поддержку нескольких архитектур и поддержку abi, которых нет в дистрибутивах vanilla GNU, и многие сторонние пакеты зависят от этих функций в OS X. Если вы устанавливаете что-либо через MacPorts или из исходных кодов,быть установленным по другому пути, например /opt/local/bin или /usr/local/bin.Используйте переменные PATH или переменные среды для управления тем, какой компилятор вы используете.

6 голосов
/ 02 октября 2011

Ну, для первой части Apple в этом случае использует LLVM для g ++ в качестве g ++ по умолчанию.Apple также устанавливает чудесные интерфейсы clang и clang ++ для LLVM.Однако ничто не мешает вам установить новые ветви GCC;MacPorts имеет пакеты для всего до 4.6.Если вы посмотрите «APPLE ONLY» на справочной странице gcc, вы увидите, что будет недоступно за пределами ветвей Apple.

2 голосов
/ 02 октября 2011

Вы можете использовать macport для установки более новых версий. Вы можете скачать его здесь . После того, как вы установили gcc с macport, вы можете использовать его с xcode, добавив пользовательский параметр в вашу сборку:

- Go to the build setting of your project
- Click on the add build setting button
- Choose user-defined setting
- Name it CC
- In the value field, put the path of the gcc version installed by macport.
1 голос
/ 02 октября 2011

Одна вещь, которая определенно присутствует в ветви Apple GCC, но отсутствует в GNU GCC, это blocks .

...