Różnica między zestawem narzędzi Cross GCC i Linux GCC


24

Tworząc nowy projekt C ++ w Eclipse, pytają mnie o toolchain.

Jaka jest praktyczna różnica między tymi łańcuchami narzędzi - Cross GCCi Linux GCC. W jakich okolicznościach ich używasz? Czy ma to coś wspólnego z tym, czy projekt zostanie skompilowany zarówno na komputerach z systemem Linux, jak i Windows?

W jednej z odpowiedzi możemy przeczytać:

Ogólnie kompilator krzyżowy to kompilator produkujący kod dla innego rodzaju systemu niż twój.

więc jeśli skompiluję projekt na maszynie docelowej przy użyciu własnych plików makefile, nie ma znaczenia, którą opcję tu wybiorę, prawda?


10
Cross GCC oznacza, że ​​kompilujesz projekt dla innej architektury, np. Masz procesor x86 i chcesz skompilować dla ARM. Linux GCC oznacza po prostu standardowy GCC
Ulrich Dangel

Odpowiedzi:


16

Artykuł kompilatora Cross na wikipedii jest całkiem dobry. Ogólnie kompilator krzyżowy to kompilator produkujący kod dla innego rodzaju systemu niż twój. Zwykle oznacza to inną docelową architekturę sprzętową, ale może również oznaczać inny docelowy system operacyjny (lub oba).

Teoretycznie można je połączyć i użyć kompilatora krzyżowego na architekturze A 1 i systemie operacyjnym S 1, aby zbudować kompilator krzyżowy, który działałby na architekturze A 2 w systemie operacyjnym S 2 i wygenerować kod dla systemu operacyjnego S 3 na architekturze A 3 .

Jak wspomina Ulrich w swoim komentarzu, Linux GCC powinien być twoim „natywnym” kompilatorem (tj. Dla tego samego celu).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.