2011-08-17 25 views
7

Hay tres nombres de sistema que la acumulación capaz de hacer: la máquina usted está construyendo en (construcción), la máquina que son edificio para (anfitrión), y la máquina que GCC producirá código para (objetivo) Cuando configura GCC, especifica con '--build =', '--host =' y '--target ='.¿Cuál es la diferencia entre --host y --target en gcc?

¿No son the machine that you are building for y the machine that GCC will produce code for lo mismo? ¿Cual es la diferencia?

+0

posible duplicado de [¿Cuál es la diferencia de la opción './Configure'' --build', '--host' y' --target'?] (Http://stackoverflow.com/questions/5139403/whats -la-diferencia-de-configurar-opción-construir-host-y-objetivo) –

Respuesta

8

Es posible construir un compilador gcc como cruz. Es decir, puede compilar un gcc que se ejecute en una arquitectura (el host) pero genere código para una arquitectura diferente (el objetivo).

El lugar común con el que se encontrará es cuando se construye el código para plataformas integradas. Si está escribiendo código para el procesador en su refrigerador, le gustaría construirlo en su escritorio, ¡no en el refrigerador!

Algunas personas usan compiladores cruzados para compilar código para un sistema operativo diferente en la misma arquitectura. Por ejemplo, es posible segmentar Windows desde un host Linux con la cadena de herramientas MinGW.

+1

Entonces, para la analogía de la nevera, ¿el host es nuestro escritorio y el objetivo es la nevera? Por favor corrígeme si me equivoco – linvenuza

+0

Sí, así es. – Ned

+0

eh .. se le ocurrió esta publicación y solo quiero decir que parece ser una respuesta incorrecta. Si estamos preparando gcc como compilador para la nevera, entonces host = refrigerador será apropiado. Estoy confundido ahora porque hay 7 votos a favor. – infoclogged

Cuestiones relacionadas