Обновите GCC на OSX
-
10-07-2019 - |
Вопрос
Итак, я новичок в программировании и только что установил 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
в / 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.