2011-08-17 28 views
7

Ci sono tre nomi di sistema che l'accumulo conosce riguardo: il macchina che si sta costruendo (costruire), la macchina che si è edificio per (host), e la macchina che GCC produrrà codice per (target). Quando si configura GCC, si specifica con '--build =', '--host =' e '--target ='.Qual è la differenza tra --host e --target in gcc?

Non sono the machine that you are building for e the machine that GCC will produce code for la stessa cosa? Qual è la differenza?

+0

possibile duplicato di [Qual è la differenza di './Configure' opzione' --build', '--host' e' --target'?] (Http://stackoverflow.com/questions/5139403/whats -the-difference-of-configure-option-build-host-and-target) –

risposta

8

E 'possibile costruire GCC come compilatore croce. Cioè, puoi costruire un gcc che gira su un'architettura (l'host) ma genera codice per un'architettura diversa (la destinazione).

Il luogo comune in cui ci si imbatte è quando si costruisce codice per piattaforme incorporate. Se stai scrivendo il codice per il processore nel tuo frigo, ti piacerebbe farlo sul tuo desktop, non nel frigo!

Alcuni utenti utilizzano compilatori incrociati per creare codice per un sistema operativo diverso sulla stessa architettura. Ad esempio, è possibile scegliere come target Windows da un host Linux con la toolchain MinGW.

+1

quindi, per l'analogia con il frigorifero, l'host è il nostro desktop e l'obiettivo è il frigorifero? Pls correggimi se ho torto – linvenuza

+0

Sì, è vero. – Ned

+0

eh .. ha inventato questo post e voglio solo dire che sembra essere una risposta sbagliata .. Se stiamo preparando gcc come compilatore per il frigo, allora host = frigo sarà appropriato. Sono confuso ora perché ci sono 7 voti su questo. – infoclogged

Problemi correlati