Me gustaría utilizar la versión 5 de arm-linux-gnueabihf-gcc
.
Entonces lo instalé a través de:
apt-get install gcc-5-arm-linux-gnueabihf
Pero ahora cuando lo haga gcc --version
me dirá que es la versión 7.
¿Cómo le digo que use la versión anterior?
¿O tengo que desinstalar completamente la versión más nueva?
Respuesta1
Puedes ejecutar arm-linux-gnueabihf-gcc-5
en lugar de gcc
.
Esta lista de archivosincluye los nombres de las otras herramientas gcc-5-arm-linux-gnueabihf
que coloca el paquete /usr/bin
, que pueden resultarle útiles. (No mencionaste qué versión estás ejecutando, pero supongo que es 18.04, ya que esa versión es un LTS popular y su valor predeterminado es la versión 7).
Tenga en cuenta que incluso si desea utilizar la versión predeterminada, a menos que haya cambiado lo que /usr/bin/gcc
apunta (lo cual no recomiendo), el gcc
comando ejecuta un compilador GCC que generanativoejecutables. Este no será un compilador ARM a menos que su sistema Ubuntu se esté ejecutando en ARM. Para ejecutar la versión predeterminada del compilador cruzado GCC para armhf, use arm-linux-gnueabihf-gcc
(y consulteesta lista de archivos).
Se pueden instalar varias versiones de compiladores nativos y cruzados en el mismo sistema al mismo tiempo. Sin embargo , normalmente sólo se invoca la versión predeterminada del compilador GCC nativo con el gcc
comando. Otros comandos tienen un prefijo de cadena de herramientas, un sufijo de versión o (en este caso) ambos. Este es el casoinclusocuando ese compilador no predeterminado es el único compilador instalado en el sistema.
Si realmente debes gcc
llamar a ese compilador...
Si necesita gcc
llamar a ese compilador porque alguna otra herramienta de compilación, como por ejemplo , make
está llamando a gcc
, el mejor enfoque suele ser reconfigurar esa otra herramienta o establecer la CC
variable de entorno en el compilador que desee. Es posible que simplemente gcc
ejecutar el compilador que necesita tampoco sea posible.suficiente, porque los nombres de otras herramientas seguirán ejecutando las versiones nativas.
Dicho esto, suponiendo que su sistema Ubuntu seanoun sistema armhf pero aún asíRealmente quiero gcc
Para ejecutar el arm-linux-gnueabihf-gcc-5
compilador cruzado, tiene algunas opciones. Podría reemplazar el /usr/bin/gcc
enlace simbólico (que en 18.04 enlaza con gcc-7
), pero no lo recomiendo. Al hacerlo, es probable que se rompa todo lo que se supone gcc
que es un compilador nativo y puede interferir o deshacerse mediante futuras operaciones de administración de paquetes.
En su lugar, puede colocar un gcc
enlace simbólico arm-linux-gnueabihf-gcc-5
en el directorio bin privado de su usuario ~/bin
. El archivo predeterminado por usuario ~/.profile
agrega ese directorio $PATH
cuando inicia sesión, si el directorio existe. Las compilaciones automatizadas (como cuando ejecuta ./configure
o cmake ..
y luego make
) que no personaliza generalmente usan cc
, que seguirá siendo un enlace simbólico a un compilador nativo, por lo que esto no debería estropear las cosas.
Personalmente, ni siquiera quisiera hacer esto, porquemí mismoconfundirse. Prefiero que siempre quede claro de inmediato a qué plataforma se dirige mi compilador, cuando se trata de un compilador cruzado.