27

He intentado comprender las convenciones de nombres detrás de los compiladores cruzados de gcc, pero parece haber respuestas contradictorias. Tengo las siguientes tres compiladores cruzados en mi sistema:¿Alguien puede explicar la convención de nomenclatura cruzada de gcc?

  • brazo-ninguno-linux-gnueabi (CodeSourcery ARM compilador para Linux)
  • brazo-ninguno-EABI (CodeSourcery ARM compilador para sistemas completos)
  • brazo-EABI (compilador ARM Android)

al leer a través del manual libtool GNU, especifica el compilador cruzado convención de nomenclatura como:

cpu-vendedor-os (os = sistema/kernel -system)

Esto no parece completamente exacto con los compiladores en mi sistema. ¿La información del manual de GNU es antigua o los distribuidores del compilador simplemente dejaron de seguirla?

Respuesta

18

El nombramiento se reduce a esto:

arch-vendor-(os-)abi

Así, por ejemplo:

x86_64-w64-mingw32 = arquitectura x86_64 (= AMD64), W64 (= MinGW-W64 como "vendedor"), mingw32 (= API Win32 como se ve por GCC)

i686-pc-msys = 32-bit (pc = nombre genérico) Msys binario

i686-unknown-linux-gnu = 32 bits GNU/Linux

Y tu ejemplo concreto:

arm-none-linux-gnueabi = arquitectura ARM, ningún vendedor, sistema operativo Linux y el gnueabi ABI.

El arm-eabi es como usted dice, utilizado para aplicaciones nativas de Android.

Una advertencia: Debian usa un nombre diferente, solo para ser difícil, así que ten cuidado si estás en un sistema basado en Debian, ya que tienen diferentes nombres para, por ejemplo. i686-pc-mingw32.

Cuestiones relacionadas