Différence entre Cross GCC et Linux GCC toolchain

24

Lors de la création d'un nouveau projet C ++ dans Eclipse, on me pose des questions sur la chaîne d'outils.

Quelle est la différence pratique entre ces chaînes d'outils - Cross GCCet Linux GCC. Dans quelles circonstances les utiliser? Cela a-t-il quelque chose à voir avec la compilation du projet sur les machines Linux et Windows?

Dans l' une des réponses, nous pouvons lire:

Généralement, un compilateur croisé est un compilateur produisant du code pour un type de système différent du vôtre.

donc si je compile un projet sur la machine cible en utilisant ses propres makefiles, peu importe l'option que je choisirai ici, non?

Wiktor
la source
10
Cross GCC signifie que vous compilez votre projet pour une architecture différente, par exemple, vous avez un processeur x86 et souhaitez compiler pour ARM. Linux GCC signifie simplement le GCC standard
Ulrich Dangel

Réponses:

16

L' article du compilateur Cross sur wikipedia est assez bon. Généralement, un compilateur croisé est un compilateur produisant du code pour un type de système différent du vôtre. Cela signifie généralement une architecture matérielle cible différente, mais cela peut également signifier un système d'exploitation cible différent (ou les deux).

Théoriquement, vous pouvez les combiner et utiliser un compilateur croisé sur l'architecture A 1 et le système d'exploitation S 1 pour construire un compilateur croisé qui fonctionnerait sur l'architecture A 2 sous le système d'exploitation S 2 et produirait du code pour le système d'exploitation S 3 sur l'architecture A 3. .

Comme Ulrich le mentionne dans son commentaire, Linux GCC devrait être votre compilateur "natif" (c'est-à-dire pour la même cible).

peterph
la source