Кросс-компилятор: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
м r2.7.3) (бот удалил: fr:Compilateur#Compilateur croisé
мНет описания правки
 
(не показано 6 промежуточных версий 6 участников)
Строка 1: Строка 1:
'''Кросс-компиля́тор''' ({{lang-en|cross compiler}}) — [[компилятор]], производящий [[исполняемый код]] для платформы, отличной от той, на которой исполняется сам кросс-компилятор. Такой инструмент бывает полезен, когда нужно получить код для платформы, экземпляров которой нет в наличии, или в случаях, когда компиляция на целевой платформе невозможна или нецелесообразна (например, это касается мобильных систем или микроконтроллеров с минимальным объёмом памяти).
{{перевести|en|Cross compiler}}
'''Кросс-компиля́тор''' ({{lang-en|cross compiler}}) — [[компилятор]], производящий [[исполняемый код]] для платформы, отличной от той, на которой исполняется сам кросс-компилятор. Такой инструмент бывает полезен, когда нужно получить код для платформы, экземпляров которой нет в наличии, или в случаях когда компиляция на целевой платформе невозможна или нецелесообразна (например, это касается мобильных систем или микроконтроллеров с минимальным объёмом памяти).


Пример кросс-компилятора — [[MinGW]] [[GCC]] с опцией <tt>-mno-cygwin</tt>. С этой опцией он может в среде [[Cygwin]] создавать код, использующий только «родные» библиотеки Windows.
Пример кросс-компилятора — [[MinGW]] [[GCC]] с опцией <tt>-mno-cygwin</tt>. С этой опцией он может в среде [[Cygwin]] создавать код, использующий только «родные» библиотеки Windows.
Строка 7: Строка 6:
[[GCC]], набор компиляторов для различных языков программирования, может быть использован для кросс-компиляции.
[[GCC]], набор компиляторов для различных языков программирования, может быть использован для кросс-компиляции.


Для кросс-компиляции с GCC необходимо, чтобы была доступна скомпилированная для целевой платформы версия [[binutils]]. Особенно важно наличие [[GNU Assembler]]. Поэтому binutils должны быть предварительно скомпилированы с ключом <code>--target=some-target</code>, указанным {{не переведено|есть=:en:Configure script|надо=Скрипт конфигурирования|текст=скрипту конфигурирования}}. GCC также должна быть указана опция <code>--target</code> с аналогичным содержанием. После этого, чтобы GCC мог использовать полученные binutils, надо поместить путь к ним в [[Переменные среды|переменную окружения]] [[Путь к файлу|path]], например:
Для кросс-компиляции с GCC необходимо, чтобы была доступна скомпилированная для целевой платформы версия [[binutils]]. Особенно важно наличие [[GNU Assembler]]. Поэтому binutils должны быть предварительно скомпилированы с ключом <code>--target=some-target</code>, указанным {{не переведено|Скрипт конфигурирования|скрипту конфигурирования|en|Configure script}}. GCC также должна быть указана опция <code>--target</code> с аналогичным содержанием. После этого, чтобы GCC мог использовать полученные binutils, надо поместить путь к ним в [[Переменные среды|переменную среды]] [[Путь к файлу|path]], например:
<source lang=bash>
<source lang=bash>
PATH=/path/to/binutils/bin:${PATH} make
PATH=/path/to/binutils/bin:${PATH} make
Строка 16: Строка 15:


{{compu-soft-stub}}
{{compu-soft-stub}}
{{перевести|en|Cross compiler}}


[[Категория:Компиляторы]]
[[Категория:Компиляторы]]

[[cs:Křížový překladač]]
[[de:Cross-Compiler]]
[[en:Cross compiler]]
[[es:Compilador cruzado]]
[[fa:ترجمه دوگانه]]
[[hy:Խաչաձև կազմարկիչ]]
[[it:Cross-compilazione]]
[[ja:クロスコンパイラ]]
[[pl:Kompilator skrośny]]
[[pt:Compilador cruzado]]
[[tr:Çapraz derleyiciler]]
[[uk:Крос-компілятор]]
[[zh:交叉編譯器]]

Текущая версия от 05:47, 10 декабря 2023

Кросс-компиля́тор (англ. 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