¿Cómo instalo el último gcc en FreeBSD?

10

¿Cómo instalo la versión más reciente gccen FreeBSD y configuro el sistema para que esta última versión se use para compilar más programas?

En el momento de escribir este artículo, la última versión de gcces la versión 4.9.0. Y uso FreeBSD 10.0.

De hecho g++, necesito el compilador de C ++; pero necesito instalar algo como el gcc49paquete, ¿verdad?

Nickolai Leschov
fuente
¿Dp desea compilar todos los puertos con GCC o necesita solo GCC?
Raphael Ahrens
Me gustaría gcccompilar mi software. Y tal vez los puertos que instalaría después de eso, si eso se puede hacer.
Nickolai Leschov
Recuerde que hay diferentes ramas desde las que puede descargar software en FreeBSD: unix.stackexchange.com/a/433876/128489
Mateusz Piotrowski el

Respuestas:

16

Puede instalar GCC 4.9 construyéndolo desde puertos con

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

o si tienes portmaster

portmaster -DHB lang/gcc49

o si prefieres paquetes con

pkg install lang/gcc49

Si cambia lang/gcc49a lang/gcc, instalará la versión estable más reciente de GCC actualmente, esta es GCC 4.7.

Cuando desee construir todos sus puertos con GCC en lugar de Clang, debe editar /etc/make.confy agregar

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

y editar /etc/libmap.confy agregar allí

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

Aquí hay un artículo de FreeBSD.org que explica esto con más detalle.

Pero realmente no necesita GCC para los puertos, todos los puertos que ya dependen de GCC usarán GCC.

Editar:

Y sí g++, se instalará con todos los puertos GCC.

Raphael Ahrens
fuente
44
Tenga en cuenta que ahora lang/gcc5también existe.
PythonNut
2
y lang/gcc7(diciembre de 2017)
truncado el
lang / gcc instalaría la versión más reciente de gcc.
user917099
@ user917099 No siempre algunas veces lang / gcc está una o dos versiones atrás. En el momento en que se escribió la respuesta lang/gccno estaba apuntando lang/gcc49.
Raphael Ahrens