Різниця між Cross GCC та Linux GCC ланцюжками інструментів


24

Під час створення нового проекту C ++ в Eclipse, мене запитують про інструментальну ланцюг.

У чому полягає практична відмінність цих ланцюжків інструментів - Cross GCCі Linux GCC. За яких обставин їх використовувати? Чи має це щось спільне з тим, чи збирається проект збиратись як на Linux, так і на Windows?

В одній з відповідей ми можемо прочитати:

Як правило, крос-компілятор - це компілятор, що виробляє код для іншої системи, ніж ваша.

тож якщо я складаю проект на цільовій машині, використовуючи власні файли, не має значення, який варіант я тут оберу, правда?


10
Перехресний GCC означає, що ви збираєте проект для іншої архітектури, наприклад, у вас є процесор x86 і хочете компілювати для ARM. Linux GCC просто означає стандартний GCC
Ульріх Дангель

Відповіді:


16

Стаття компілятора Cross у Вікіпедії є досить хорошою. Взагалі крос-компілятор - це компілятор, що виробляє код для іншої системи, ніж ваша. Зазвичай це означає іншу цільову апаратну архітектуру, але це також може означати іншу цільову операційну систему (або обидві).

Теоретично ви можете комбінувати їх і використовувати крос-компілятор з архітектури A 1 та операційної системи S 1 для створення перехресного компілятора, який би запускався на архітектурі A 2 під операційною системою S 2 і виробляв код для операційної системи S 3 для архітектури A 3 .

Як згадує Ульріх у своєму коментарі, Linux GCC повинен бути вашим "рідним" компілятором (тобто для тієї ж цілі).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.