parametros instalar ejecutar compilar compilador linux ubuntu gcc

linux - ejecutar - instalar gcc en ubuntu



¿Cómo cambiar el compilador predeterminado de GCC en Ubuntu? (8)

Ahora, hay gcc-4.9 disponible para Ubuntu / precisa.

Cree un grupo de alternativas de compilación donde el compilador de distribución tenga una prioridad más alta:

root$ VER=4.6 ; PRIO=60 root$ update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-$VER $PRIO --slave /usr/bin/g++ g++ /usr/bin/g++-$VER root$ update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-$VER $PRIO root$ VER=4.9 ; PRIO=40 root$ update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-$VER $PRIO --slave /usr/bin/g++ g++ /usr/bin/g++-$VER root$ update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-$VER $PRIO

NOTA: la versión de g ++ se cambia automáticamente con un modificador de versión de gcc. cpp-bin debe hacerse por separado, ya que existe una alternativa principal "cpp".

Enumerar alternativas de compilador disponibles:

root$ update-alternatives --list gcc root$ update-alternatives --list cpp-bin

Para seleccionar manualmente la versión 4.9 de gcc, g ++ y cpp, haz:

root$ update-alternatives --config gcc root$ update-alternatives --config cpp-bin

Verificar versiones del compilador:

root$ for i in gcc g++ cpp ; do $i --version ; done

Restaurar la configuración del compilador de distro (aquí: volver a v4.6):

root$ update-alternatives --auto gcc root$ update-alternatives --auto cpp-bin

He instalado gcc-3.3 / g ++ - 3.3 en ubuntu 11.04 que ya tiene gcc / g ++ - 4.4. Entonces, en mi sistema, tanto gcc-3.3 como 4.4 están disponibles. Puedo llamar a ambos compiladores como quiera. Si solo llamo al comando gcc llamará a gcc-4.4. Para llamar a gcc-3.3, tengo que usar el comando gcc-3.3 .

¿Cómo puedo cambiar el compilador predeterminado como gcc-3.3? Cuando ejecuto el comando gcc debería llamar a gcc-3.3 y no a gcc-4.4.

Además, ¿cómo puedo cambiar la variable CXX en un archivo make a gcc-3.3? Deseo cambiar un lugar global común en el sistema en lugar de cambiar todos los archivos make.


Aquí hay un ejemplo completo de la respuesta de jHackTheRipper para el grupo TL; DR. :-) En este caso, quería ejecutar g ++ - 4.5 en un sistema Ubuntu que por defecto es 4.6. Como root :

apt-get install g++-4.5 update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 100 update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.5 50 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 100 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 50 update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.6 100 update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.5 50 update-alternatives --set g++ /usr/bin/g++-4.5 update-alternatives --set gcc /usr/bin/gcc-4.5 update-alternatives --set cpp-bin /usr/bin/cpp-4.5

Aquí, 4.6 sigue siendo el predeterminado (también conocido como "modo automático"), pero explícitamente cambio a 4.5 temporalmente (modo manual). Para volver a 4.6:

update-alternatives --auto g++ update-alternatives --auto gcc update-alternatives --auto cpp-bin

(Tenga en cuenta el uso de cpp-bin lugar de simplemente cpp . Ubuntu ya tiene una alternativa de cpp con un enlace maestro de /lib/cpp . Renombrar ese enlace eliminaría el enlace /lib/cpp , lo que podría romper los scripts).


Como @Tommy sugirió, debería usar update-alternatives .
Asigna valores a cada software de una familia, de modo que define el orden en que se llamarán las aplicaciones.

Se usa para mantener diferentes versiones del mismo software en un sistema. En su caso, podrá usar varias declinaciones de gcc , y una será favorecida.

Para descubrir las prioridades actuales de gcc, escriba el comando señalado por el comentario de @ tripleee:

update-alternatives --query gcc

Ahora, tenga en cuenta la prioridad atribuida a gcc-4.4 porque tendrá que dar una mayor a gcc-3.3 .
Para establecer sus alternativas, debe tener algo como esto (suponiendo que su instalación de gcc se encuentra en /usr/bin/gcc-3.3 , y la prioridad de gcc-4.4 es menor que 50) :

update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.3 50

--editar--

Finalmente, también puede usar la interfaz interactiva de update-alternatives de update-alternatives para cambiar fácilmente de una versión a otra. Escriba update-alternatives --config gcc para que se le pida que elija la versión de gcc que desea usar entre las instaladas.

--edit 2 -

Ahora, para arreglar la variable de entorno CXX en todo el sistema, debe poner la línea indicada por @ DipSwitch en su archivo .bashrc (esto aplicará el cambio solo para su usuario, que en mi opinión es más seguro):

echo ''export CXX=/usr/bin/gcc-3.3'' >> ~/.bashrc


En caso de que desee una forma más rápida (pero todavía muy limpia) de lograrlo para un propósito personal (por ejemplo, si desea construir un proyecto específico que tenga algunos requisitos estrictos con respecto a la versión del compilador), solo siga los siguientes pasos:

  • escriba echo $PATH y busque un directorio personal que tenga una prioridad muy alta (en mi caso, tengo ~/.local/bin );
  • agregue los enlaces simbólicos en este directorio:

Por ejemplo:

ln -s /usr/bin/gcc-WHATEVER ~/.local/bin/gcc ln -s /usr/bin/g++-WHATEVER ~/.local/bin/g++

Por supuesto, esto funcionará para un solo usuario (no es una solución de todo el sistema), pero, por otro lado, no me gusta cambiar demasiadas cosas en mi instalación.


Encontré este problema al intentar instalar un nuevo compilador clang. Resulta que tanto los mantenedores de Debian como los de LLVM acuerdan que el sistema de alternativas debe usarse para alternativas, NO para el control de versiones .

La solución que proponen es algo como esto:
PATH=/usr/lib/llvm-3.7/bin:$PATH
donde /usr/lib/llvm-3.7/bin es un directorio que fue creado por el paquete llvm-3.7 y que contiene todas las herramientas con sus nombres no sufijos. Con eso, llvm-config (versión 3.7) aparece con su nombre simple en tu RUTA. No hay necesidad de perder el tiempo con enlaces simbólicos, ni de llamar al llvm-config-3.7 que se instaló en / usr / bin.

Además, busque un paquete llamado llvm-defaults (o gcc-defaults), que podría ofrecer otra forma de hacerlo (no lo usé).


Entre 4.8 y 6 con todos los --slaves :

update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 / 10 / --slave /usr/bin/cc cc /usr/bin/gcc-4.8 / --slave /usr/bin/c++ c++ /usr/bin/g++-4.8 / --slave /usr/bin/g++ g++ /usr/bin/g++-4.8 / --slave /usr/bin/gcov gcov /usr/bin/gcov-4.8 / --slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-4.8 / --slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-4.8 / --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-4.8 / --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-4.8 / --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-4.8

y

update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 / 15 / --slave /usr/bin/cc cc /usr/bin/gcc-6 / --slave /usr/bin/c++ c++ /usr/bin/g++-6 / --slave /usr/bin/g++ g++ /usr/bin/g++-6 / --slave /usr/bin/gcov gcov /usr/bin/gcov-6 / --slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-6 / --slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-6 / --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-6 / --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-6 / --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-6

Cambie entre ellos con update-alternatives --config gcc .


Usé solo las líneas a continuación y funcionó. Solo quería compilar VirtualBox y VMWare WorkStation usando kernel 4.8.10 en Ubuntu 14.04 . Inicialmente, la mayoría de las cosas no funcionaban, por ejemplo, gráficos y redes. Tuve suerte de que la VMWare workstation solicitara gcc 6.2.0 . No pude iniciar mis Genymotion Android emulators Genymotion porque virtualbox no funcionaba. Publicará los resultados más tarde si es necesario.

VER=4.6 ; PRIO=60 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-$VER $PRIO --slave /usr/bin/g++ g++ /usr/bin/g++-$VER VER=6 ; PRIO=50 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-$VER $PRIO --slave /usr/bin/g++ g++ /usr/bin/g++-$VER VER=4.8 ; PRIO=40 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-$VER $PRIO --slave /usr/bin/g++ g++ /usr/bin/g++-$VER


Esta es la gran descripción y la instrucción paso a paso sobre cómo crear y gestionar alternativas maestras y esclavas (gcc y g ++).

En breve es:

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