optimizadores - ¿Alguien puede explicar la convención de nombres de compiladores cruzados de gcc?
gcc linux (1)
La denominación se reduce a esto:
arch-vendor-(os-)abi
Así por ejemplo:
x86_64-w64-mingw32
= arquitectura x86_64 (= AMD64), w64 (= mingw-w64 como "proveedor"), mingw32 (= API win32 según lo visto por GCC)
i686-pc-msys
= 32 bits (pc = nombre genérico) msys binario
i686-unknown-linux-gnu
= GNU de 32 bits / linux
Y tu ejemplo específicamente:
arm-none-linux-gnueabi
= ARM architecture, no vendor, linux OS y gnueabi ABI.
El arm-eabi
es igual que usted dice, usado 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
.
He tratado de entender las convenciones de nombres detrás de los compiladores cruzados de gcc, pero parece haber respuestas conflictivas. Tengo los siguientes tres compiladores cruzados en mi sistema:
- arm-none-linux-gnueabi (compilador ARM CodeSourcery para Linux)
- arm-none-eabi (compilador ARM CodeSourcery para sistemas de metal desnudo)
- arm-eabi (compilador de Android ARM)
Al leer el manual de libtool de GNU, especifica la convención de nombres de compilador cruzado como:
cpu-vendor-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?