¿Cómo usar GCC 4.7 en lugar de 4.6?

8

Así que estoy trabajando en un proyecto y quería usar algunas características de C11 para C. Para usar esas características se requiere GCC 4.7, así que fui a Synaptic y busqué 4.7, y encontré los paquetes gcc-4.7-base, así que lo instaló [1].

Entonces, ahora que gcc-4.7-base está instalado, esperaba poder usar 4.7, pero no, cuando lo hago gcc --versiontodavía muestra 4.6.3 aún más, cuando trato de llamar directamente a 4.7 (via /usr/bin/gcc-4.7) no existe, aunque gcc-4.6existe un ejecutable.

¿Cómo "activo" GCC 4.7? Leí aquí , haces algunas cosas locas update-alternatives, pero no funciona para mí ya que el gcc-4.7ejecutable en realidad no existe en mi máquina.

Notas: 1. También vi gcc-4.6-base, así que pensé en desinstalarlo, pero Synaptic intentó eliminar todos los paquetes que había instalado e instalar un tiempo de ejecución de Java, así que por razones obvias decidí no eliminarlo.

Larz Conwell
fuente

Respuestas:

13

Lo siguiente funcionó para mí.

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 
sudo update-alternatives --config gcc

Fuente de referencia

Jinseop Kim
fuente
No creo que esto responda la pregunta, ya que el OP dijo específicamente que la update-alternativesruta no funcionaría para ellos, ya que no tenían el binario gcc-4.7 disponible. De hecho, tratar de seguir las instrucciones en esta respuesta después de instalar gcc-4.7-base da como resultado el error:update-alternatives: error: alternative path /usr/bin/gcc-4.7 doesn't exist.
waldyrious
0

El gccbinario está en el gcc-X.Ypaquete, no gcc-X.Y-base. Este último es una dependencia de cualquiera gcc-X.Yo libstdc++.

Básicamente, simplemente debe instalarlo gcc-4.7y luego llamarlo gcc-4.7desde su archivo MAKE o usarlo install-alternativespara que sea el predeterminado.

Dmitry Grigoryev
fuente