Кросс-компилятор

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

  • Хост (host) — компьютер, на котором производится сборка;
  • Цель (target) — компьютер, для которого производится сборка.

Строение кросс-компилятора

Помимо самого кросс-компилятора требуются скомпилированные для целевой платформы пакет binutils (особенно важно наличие GNU Assembler), содержащий программы для работы с объектными файлами, стандартная библиотека языка С (в LFA используется библиотека Musl) и заголовки ядра Linux.

Канадский крест

Канадский крест — это метод сборки кросс-компилятора для целевых архитектур. Например:

  • Фирменный родной компилятор для компьютера (№1) используется для сборки «родного» компилятора для компьютера (№2).
  • Родной компилятор для компьютера (№2) используется для сборки кросс-компилятора с компьютера A на компьютер B (№3).
  • Кросс-компилятор с компьютера A для компьютера B используется для сборки кросс-компилятора для компьютера C (№4).


Смотрите также: