Вопрос

Итак, я новичок в программировании и только что установил 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, например, какие команды и прочее.Спасибо.

Это было полезно?

Решение

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

/opt/local/bin/port install gcc_select

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

port select --list gcc

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

sudo port select --set gcc gcc40

Другие советы

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

  

$ sudo port select --list gcc

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

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

  

$ sudo port select --set gcc mp-gcc46

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

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

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

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

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

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

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

> gcc_select -l

gcc40 mp-gcc44

> GCC_SELECT MP-GCC44

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

$ brew tap SynthiNet/synthinet
$ brew install gcc47

Нашел его в сообщении здесь .

в / usr / bin type

sudo ln -s -f g ++ - 4,2 g ++

sudo ln -s -f gcc-4.2 gcc

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

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

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

ИЗМЕНИТЬ

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top