¿Cómo cambiar la versión de arm-linux-gnueabihf-gcc?

¿Cómo cambiar la versión de arm-linux-gnueabihf-gcc?

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 --versionme 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-5en lugar de gcc.

Esta lista de archivosincluye los nombres de las otras herramientas gcc-5-arm-linux-gnueabihfque 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/gccapunta (lo cual no recomiendo), el gcccomando 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 gcccomando. 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 gccllamar a ese compilador...

Si necesita gccllamar a ese compilador porque alguna otra herramienta de compilación, como por ejemplo , makeestá llamando a gcc, el mejor enfoque suele ser reconfigurar esa otra herramienta o establecer la CCvariable de entorno en el compilador que desee. Es posible que simplemente gccejecutar 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 gccPara ejecutar el arm-linux-gnueabihf-gcc-5compilador cruzado, tiene algunas opciones. Podría reemplazar el /usr/bin/gccenlace 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 gccque es un compilador nativo y puede interferir o deshacerse mediante futuras operaciones de administración de paquetes.

En su lugar, puede colocar un gccenlace simbólico arm-linux-gnueabihf-gcc-5en el directorio bin privado de su usuario ~/bin. El archivo predeterminado por usuario ~/.profile agrega ese directorio $PATHcuando inicia sesión, si el directorio existe. Las compilaciones automatizadas (como cuando ejecuta ./configureo 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.

información relacionada