что такое кросс-компиляция? - PullRequest
26 голосов
/ 22 мая 2009

что такое кросс-компиляция?

Ответы [ 5 ]

26 голосов
/ 22 мая 2009

Кросс-компиляция - это процесс компиляции кода для одной компьютерной системы (часто называемой целевой) в другой системе, называемой хостом.

Это очень полезный метод, например, когда целевая система слишком мала для размещения компилятора и всех соответствующих файлов.

Типичными примерами являются многие встроенные системы, но также и типичные игровые приставки.

8 голосов
/ 23 марта 2011

«Кросс-компиляция» означает компиляцию исходного кода, скажем, на Linux-блоке с намерением запустить его на MAC или Windows-боксе. Обычно это делается с помощью плагина кросс-компиляции, который легко доступен с различных веб-серверов в сети. Если нужно установить плагин кросс-компиляции на их Linux-модуль, который предназначен для компиляции для Windows-блоков. Затем они могут скомпилировать либо для Linux / * NIX, а также иметь возможность скомпилировать и связать готовый для Windows исполняемый файл. Это очень удобно для программиста-фрилансера, у которого есть доступ не более чем к одному Linux / Windows / MAC. Обратите внимание, что различные плагины для кросс-компиляции позволяют использовать множество приложений, некоторые из которых вы можете или не можете считать полезными, что позволяет тщательно изучить файл README плагина.

Был ли у вас конкретный проект, к которому вы хотели бы применить метод кросс-компиляции?

5 голосов
/ 16 марта 2017

Кросс-компилятор компилирует исходный код из одной архитектуры в другую архитектуру.

Например: hello.c

  1. gcc hello.c (gcc - это компилятор для архитектуры x86.)
  2. arm-cortexa8-linux-gnueabihf-gcc hello.c
    (arm -....- gcc - компилятор для архитектуры arm.) Это вы компилируете на хост-ПК для целевой платы (например, rpi, beaglebone, wega board). В этом примере arm-cortexa8-linux-gnueabihf-gcc называется «кросс-компилятор».

Этот процесс называется кросс-компиляцией.
см. ссылку для получения дополнительной информации кросс-компиляция

3 голосов
/ 22 мая 2009

В строгом смысле, это компиляция кода на одном хосте, предназначенная для запуска на другом.

Чаще всего он используется со ссылкой на компиляцию для архитектур, которые не совместимы с хостом в двоичном формате - например, для создания двоичных файлов RISC на платформе ЦП CISC или 64-битных двоичных файлов в 32-битной системе. Или, например, создание встроенного программного обеспечения, предназначенного для запуска на встроенных устройствах (возможно, с использованием архитектуры процессора ARM) в ОС на базе ПК Intel.

1 голос
/ 21 февраля 2019

A Кросс-компилятор - это компилятор, способный создавать исполняемый код для платформы, отличной от той, на которой работает компилятор.
Например, компилятор, работающий на ПК с Windows 7, но генерирующий код, работающий на смартфоне Android, является кросс-компилятором.

Кросс-компилятор необходим для компиляции нескольких платформ с одного компьютера.
Платформа может быть недоступна для запуска компилятором, например, для микроконтроллера встроенной системы, поскольку эти системы не содержат операционной системы.
При паравиртуализации на одной машине работает много операционных систем, и кросс-компилятор может сгенерировать исполняемый файл для каждой из них из одного основного источника.

...