Diferença entre a cadeia de ferramentas Cross GCC e Linux GCC

24

Ao criar o novo projeto C ++ no Eclipse, estou sendo questionado sobre a cadeia de ferramentas.

Qual é a diferença prática entre essas cadeias de ferramentas - Cross GCCe Linux GCC. Em que circunstâncias os usa? Isso tem algo a ver com a compilação do projeto nas máquinas linux e windows?

Em uma das respostas , podemos ler:

Geralmente, um compilador cruzado é um compilador que produz código para um tipo de sistema diferente do seu.

então, se eu compilar projeto na máquina de destino usando makefiles próprios, não importa qual opção eu escolherei aqui, certo?

Wiktor
fonte
10
O GCC cruzado significa que você está compilando seu projeto para uma arquitetura diferente, por exemplo, você possui um processador x86 e deseja compilar para o ARM. Linux GCC significa apenas o padrão GCC
Ulrich Dangel

Respostas:

16

O artigo do compilador Cross na wikipedia é bastante bom. Geralmente, um compilador cruzado é um compilador que produz código para um tipo de sistema diferente do seu. Geralmente, isso significa uma arquitetura de hardware de destino diferente, mas também pode significar um sistema operacional de destino diferente (ou ambos).

Teoricamente, você poderia combiná-las e usar um compilador cruzado na arquitetura A 1 e o sistema operacional S 1 para criar um compilador cruzado que seria executado na arquitetura A 2 no sistema operacional S 2 e produziria código para o sistema operacional S 3 na arquitetura A 3 .

Como Ulrich menciona em seu comentário, o Linux GCC deve ser seu compilador "nativo" (ou seja, para o mesmo destino).

peterph
fonte