Differenza tra Cross GCC e Linux GCC toolchain


24

Durante la creazione di un nuovo progetto C ++ in Eclipse, mi viene chiesto della toolchain.

Qual è la differenza pratica tra queste toolchain - Cross GCCe Linux GCC. In quali circostanze li usano? Ha qualcosa a che fare con la compilazione del progetto su macchine Linux e Windows?

In una delle risposte possiamo leggere:

Generalmente un compilatore incrociato è un compilatore che produce codice per un tipo di sistema diverso dal tuo.

quindi se compilo il progetto sulla macchina target usando i propri makefile, non importa quale opzione sceglierò qui, giusto?


10
Cross GCC significa che stai compilando il tuo progetto per un'architettura diversa, ad esempio hai un processore x86 e vuoi compilare per ARM. Linux GCC significa semplicemente GCC standard
Ulrich Dangel

Risposte:


16

L' articolo del compilatore Cross su Wikipedia è abbastanza buono. Generalmente un compilatore incrociato è un compilatore che produce codice per un tipo di sistema diverso dal tuo. Di solito questo significa un'architettura hardware di destinazione diversa, ma può anche significare un sistema operativo di destinazione diverso (o entrambi).

Teoricamente potresti combinarli e usare un cross-compilatore sull'architettura A 1 e sul sistema operativo S 1 per costruire un cross-compilatore che verrebbe eseguito sull'architettura A 2 sotto il sistema operativo S 2 e produrre codice per il sistema operativo S 3 sull'architettura A 3 .

Come menziona Ulrich nel suo commento, Linux GCC dovrebbe essere il tuo compilatore "nativo" (cioè per lo stesso target).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.