Обновление GCC на OSX - PullRequest
59 голосов
/ 08 мая 2009

Итак, я новый программист, и я только что установил XCode на свой Macbook, чтобы получить GCC. Я думаю, что Xcode - единственный способ получить GCC на OSX. Теперь, когда я запускаю свое приложение Hello World, в C ++ появляется g ++, говоря, что это версия 4.0.1, но когда я ищу команды, начинающиеся с g, я также вижу g ++ - 4.2. Есть ли способ сделать 4.2 по умолчанию вместо 4.0.1, а также есть ли способ обновить gcc до последней версии 4.4.0?

РЕДАКТИРОВАТЬ: Хорошо, поэтому я установил macports и установил gcc4.4, и он отображается на терминале как gcc-mp-4.4 и как мне сделать его по умолчанию с gcc_select, например, какие команды и все такое. Спасибо.

Ответы [ 8 ]

60 голосов
/ 08 мая 2009

Если вы устанавливаете macports, вы можете установить gcc select, а затем выбрать версию gcc.

/opt/local/bin/port install gcc_select

Для просмотра ваших версий используйте

port select --list gcc

Для выбора версии используйте

sudo port select --set gcc gcc40
36 голосов
/ 27 января 2012

Я знаю, что это старый запрос. Но это все еще может быть полезно для некоторых. В текущих версиях MacPorts вы можете выбрать версию gcc по умолчанию с помощью команды port. Чтобы просмотреть список доступных версий gcc, используйте:

$ sudo port select --list gcc

Available versions for gcc:
gcc42
llvm-gcc42
mp-gcc46
none (active)

Чтобы установить для gcc версию MacPorts:

$ выбор порта sudo --set gcc mp-gcc46

13 голосов
/ 04 сентября 2010

Я просто захожу, чтобы сказать, что использование мягкой ссылки для достижения этой цели - ужасная, бесполезная, ужасная идея.

Одним из ключевых моментов при написании программного обеспечения является воспроизводимость - вы хотите иметь возможность получать одинаковые результаты каждый раз. Эти системы настолько сложны, что вы хотите уменьшить все невидимые источники ошибок.

Наличие мягкой ссылки - невидимый источник ошибки. Это та вещь, которую вы забудете через месяц, затем перейдете на другую машину и удивитесь, почему вы получаете разные результаты - или вы попытаетесь обновить свою систему, и вы получите странные ошибки, потому что это не так. ожидая там мягкой ссылки.

Более того, это не гарантированно сработает - в частности, не ясно, что вы получите правильные системные включаемые файлы, которые, безусловно, менялись между итерациями gcc.

gcc_select - это систематический способ сделать то же самое, что будет работать предсказуемо, или в худшем случае вы можете отправить отчет об ошибке и получить возможное исправление или исправить его самостоятельно.

К сожалению :-( gcc_select не влияет на то, какой компилятор использует XCode, поэтому это не тот путь, если вам нужно работать в XCode (что я и делаю). Я до сих пор не знаю, каким может быть этот путь.

2 голосов
/ 02 июля 2013

Следующий рецепт с использованием Homebrew помог мне обновиться до gcc / g ++ 4.7:

$ brew tap SynthiNet/synthinet
$ brew install gcc47

Нашел его на посту здесь .

2 голосов
/ 17 января 2010

используйте "gcc_select -l"

> gcc_select -l

gcc40 mp-gcc44

> gcc_select mp-gcc44

1 голос
/ 13 августа 2010

в /usr/bin тип

sudo ln -s -f g++-4.2 g++

sudo ln -s -f gcc-4.2 gcc

Это должно сделать это.

1 голос
/ 08 мая 2009

В вашем ящике может быть несколько версий GCC, чтобы выбрать ту, которую вы хотите использовать, позвоните с полным путем, например, вместо g++ используйте полный путь /usr/bin/g++ в командной строке (зависит от того, где находится ваш gcc).

Для компиляции проектов это зависит от того, какую систему вы используете, я не уверен насчет Xcode (меня устраивает atm по умолчанию), но когда вы используете Makefiles, вы можете установить GXX = / usr / bin / g ++ и так далее.

EDIT

Теперь есть скрипт xcrun, который можно запросить, чтобы выбрать подходящую версию инструментов сборки на Mac. Помимо man xcrun я нашел это объяснение по поводу xcode и инструментов командной строки , которое в значительной степени описывает, как его использовать.

0 голосов
/ 14 августа 2010

Что бы Apple ни поставляла в качестве кода gcc по умолчанию в xcode (4.2.1 на 10.6, 4.0.1 раньше), она хорошо протестирована (и поддерживается) парнями из Apple и «стандартом» для сборки программного обеспечения на OS X. Все остальное нет, так что подумайте дважды, если вы хотите разрабатывать программное обеспечение или быть бета-тестером gcc / OS X.

...