Diferencia entre Cross GCC y Linux GCC toolchain

24

Al crear un nuevo proyecto C ++ en Eclipse, me preguntan sobre la cadena de herramientas.

¿Cuál es la diferencia práctica entre estas cadenas de herramientas - Cross GCCy Linux GCC. ¿En qué circunstancias usarlos? ¿Tiene algo que ver con si el proyecto se compilará tanto en máquinas Linux como en Windows?

En una de las respuestas podemos leer:

Generalmente, un compilador cruzado es un compilador que produce código para un tipo de sistema diferente al suyo.

así que si compilo el proyecto en la máquina de destino utilizando archivos MAKE propios, no importa qué opción elegiré aquí, ¿verdad?

Wiktor
fuente
10
Cross GCC significa que está compilando su proyecto para una arquitectura diferente, por ejemplo, tiene un procesador x86 y desea compilar para ARM. Linux GCC solo significa el GCC estándar
Ulrich Dangel

Respuestas:

16

El artículo del compilador Cross en Wikipedia es bastante bueno. Generalmente, un compilador cruzado es un compilador que produce código para un tipo de sistema diferente al suyo. Por lo general, esto significa una arquitectura de hardware de destino diferente, pero también puede significar un sistema operativo de destino diferente (o ambos).

Teóricamente, podría combinarlos y utilizar un compilador cruzado en la arquitectura A 1 y el sistema operativo S 1 para construir un compilador cruzado que se ejecute en la arquitectura A 2 en el sistema operativo S 2 y producir código para el sistema operativo S 3 en la arquitectura A 3 .

Como Ulrich menciona en su comentario, Linux GCC debería ser su compilador "nativo" (es decir, para el mismo objetivo).

Peterph
fuente