Como instalo o último gcc no FreeBSD?

10

Como eu instalo a gccversão mais recente no FreeBSD e configuro o sistema para que esta versão mais recente seja usada para compilar outros programas?

No momento da redação deste artigo, a versão mais recente do gccé a versão 4.9.0. E eu uso o FreeBSD 10.0.

Na verdade g++, eu preciso do compilador C ++; mas eu preciso instalar algo como gcc49pacote para ele, certo?

Nickolai Leschov
fonte
Você deseja compilar todas as portas com o GCC ou precisa apenas do GCC?
Raphael Ahrens
Eu gostaria gccde compilar meu software. E talvez as portas que eu instalaria depois disso, se isso puder ser feito.
Nickolai Leschov
Lembre-se que existem são diferentes ramos você pode baixar o software a partir de FreeBSD: unix.stackexchange.com/a/433876/128489
Mateusz Piotrowski

Respostas:

16

Você pode instalar o GCC 4.9 construindo-o a partir de portas com

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

ou se você tem portmaster

portmaster -DHB lang/gcc49

ou se você preferir pacotes com

pkg install lang/gcc49

Se você mudar lang/gcc49para lang/gccinstalar a versão estável mais recente do GCC atualmente, é o GCC 4.7.

Quando você deseja construir todas as suas portas com o GCC em vez do Clang, é necessário editar /etc/make.confe adicionar

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

e editar /etc/libmap.confe adicionar lá

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

Aqui está um artigo do FreeBSD.org que explica isso com mais detalhes.

Mas você realmente não precisa do GCC para as portas, todas as portas que já dependem do GCC usarão o GCC.

Editar:

E sim g++, será instalado com todas as portas do GCC.

Raphael Ahrens
fonte
4
Observe que agora lang/gcc5também existe.
precisa saber é o seguinte
2
e lang/gcc7(dezembro de 2017)
truncado
O lang / gcc instalaria a versão mais recente do gcc.
user917099
@ user917099 Nem sempre algumas vezes lang / gcc está com uma ou duas versões atrás. No momento em que a resposta foi escrita lang/gccnão estava apontando lang/gcc49.
Raphael Ahrens