Кросс-компилятор
Кросс-компиля́тор (англ. cross compiler) — компилятор, производящий исполняемый код для платформы, отличной от той, на которой исполняется сам кросс-компилятор. Такой инструмент бывает полезен, когда нужно получить код для платформы, экземпляров которой нет в наличии, или в случаях когда компиляция на целевой платформе невозможна или нецелесообразна (например, это касается мобильных систем или микроконтроллеров с минимальным объёмом памяти).
Пример кросс-компилятора — MinGW GCC с опцией -mno-cygwin. С этой опцией он может в среде Cygwin создавать код, использующий только «родные» библиотеки Windows.
Кросс-компиляция с gcc
GCC, набор компиляторов для различных языков программирования, может быть использован для кросс-компиляции.
Для кросс-компиляции с GCC необходимо, чтобы была доступна скомпилированная для целевой платформы версия binutils. Особенно важно наличие GNU Assembler. Поэтому binutils должны быть предварительно скомпилированы с ключом --target=some-target
, указанным скрипту конфигурирования. GCC также должна быть указана опция --target
с аналогичным содержанием. После этого, чтобы GCC мог использовать полученные binutils, надо поместить путь к ним в переменную окружения path, например:
PATH=/path/to/binutils/bin:${PATH} make
Ссылки
- Cross compiling with GCC (англ.)