Как мне установить последнюю версию gcc на FreeBSD?

10

Как установить gccпоследнюю версию во FreeBSD и настроить систему так, чтобы эта последняя версия использовалась для компиляции других программ?

На момент написания этой статьи последней версией gccявляется версия 4.9.0. И я использую FreeBSD 10.0.

Мне действительно нужен g++компилятор C ++; но мне нужно установить что-то вроде gcc49пакета для него, верно?

Николай Лещов
источник
Dp вы хотите скомпилировать все порты с GCC или вам нужен только GCC?
Рафаэль Аренс
Я хотел бы gccскомпилировать свое программное обеспечение. И, может быть, порты, которые я бы установил после этого, если это можно сделать.
Николай Лещов
Помните, что есть разные ветки, из которых вы можете загрузить программное обеспечение с FreeBSD: unix.stackexchange.com/a/433876/128489
Mateusz Piotrowski,

Ответы:

16

Вы можете установить GCC 4.9, собрав его из портов с

cd /usr/port/lang/gcc49; make install clean

или если у вас есть portmaster

portmaster -DHB lang/gcc49

или если вы предпочитаете пакеты с

pkg install lang/gcc49

Если вы изменяете lang/gcc49к lang/gccвам будет установить самую последнюю версию стабильной GCC в настоящее время это GCC 4.7.

Если вы хотите построить все свои порты с GCC вместо Clang, вам нужно отредактировать /etc/make.confи добавить

.if !empty(.CURDIR:M/usr/ports/*) && exists(/usr/local/bin/gcc49)
CC=gcc49
CXX=g++49
CPP=cpp49
.endif

и отредактировать /etc/libmap.confи добавить туда

libgcc_s.so.1   gcc49/libgcc_s.so.1
libgomp.so.1    gcc49/libgomp.so.1
libobjc.so.3    gcc49/libobjc.so.4
libssp.so.0     gcc49/libssp.so.0
libstdc++.so.6  gcc49/libstdc++.so.6

Вот статья из FreeBSD.org, которая объясняет это более подробно.

Но вам не нужен GCC для портов, все порты, которые уже зависят от GCC, будут использовать GCC.

Редактировать:

И да g++будет установлен со всеми портами GCC.

Рафаэль Аренс
источник
4
Обратите внимание, что теперь lang/gcc5также существует.
PythonNut
2
и lang/gcc7(декабрь 2017)
усеченный
lang / gcc установит самую новую версию gcc.
user917099
@ user917099 Не всегда несколько раз lang / gcc отстает от одной или двух версий. В то время, когда был написан ответ, lang/gccне указывалось на lang/gcc49.
Рафаэль Аренс