Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

Система конфигурирования и сборки GNU

Система конфигурирования и сборки GNU

Иан Ланс Тейлор

Средства кросс-компиляции

Система конфигурирования и сборки GNU может быть использована средствами кросс-компиляции. Средства кросс-компиляции — это утилиты, которые запускаются на одной системе и создают код, который должен запускаться на другой системе.

Понятия кросс-компиляции

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

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

Хотя дебаггер, строго говоря, не является средством компиляции, он, тем не менее, в нашем контексте называется кросс-дебаггером. Это — дебаггер, который используется для отладки кода, предназначенного работать на другой системе. Всё, что ниже говорится о конфигурировании средств кросс-компиляции, применимо также и к дебаггеру.

Хост и цель

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

Система, на которой запускаются утилиты для компиляции, называется хостом или хозяйской системой.

Система, для которой генерируется код, называется целью или целевой системой.

Например, допустим вы имеете компилятор, который запускается на системе GNU/Linux и генерирует ELF-программы для встраиваемой системы MIPS. В этом случае система GNU/Linux является хостом, а система MIPS ELF — целью. Соответствующий компилятор следует называть GNU/Linux кросс-MIPS ELF компилятором, или, что эквивалентно, `i386-linux-gnu' кросс-`mips-elf' компилятором.

Конечно, большинство программ не являются средствами кросс-компиляции. Для таких программ нет смысла говорить о цели. Говорить о цели имеет смысл только для таких средств как `gcc' или `binutils', которые действительно производят запускаемый код. Нет смысла говорить о цели в отношении таких средств как, например, `bison' или `make'.

Большинство средств кросс-компиляции могут также работать и как нативные средства. Для средств нативной компиляции в разговоре также применяется устоявшееся выражение «цель». Для нативных средств целью является сам хост. Например, для нативного компилятора GNU/Linux хостом является GNU/Linux и целью также является GNU/Linux.

Использование типа хоста

Практически во всех случаях хозяйской системой является та, на которой вы запускаете скрипт `configure' и на которой вы собираете необходимые средства. Отличные от этого случаи описаны в главе Канадский крест.

Если вашему скрипту конфигурирования нужно знать имя конфигурации хозяйской системы, а пакет не является кросс-компиляционным средством и потому не имеет цели, впишите `AC_CANONICAL_HOST' в `configure.in'. Этот макрос предназначен для определения нескольких шелл-переменных при запуске скрипта `configure':

`host'
Каноническое имя конфигурации хоста. Обычно определяется в результате запуска шелл-скрипта `config.guess', хотя пользователь может переопределить его с помощью специальной опции `--host'.
`host_alias'
В редких случаях, когда пользователь явно указывает опцию `--host', эта переменная устанавливается в значение аргумента для `--host'. В обычном же случае это то же самое, что и переменная `host'.
`host_cpu'
`host_vendor'
`host_os'
Первые три части канонического имени конфигурации.

Переменные шелл могут быть помещены в шелл-код в файле `configure.in'. Пример можно посмотреть в разделе Использование имен конфигурации.


Назад Вперед
Имена конфигурации Указание цели

Перевод: Дмитрий Скоробогатов, 15.12.2011.
Оригинальный текст можно найти по адресу http://www.airs.com/ian/configure/configure_5.html.


Предыдущие публикации:

Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2014-07-09 13:17:41

Метки материала: gnu, система конфигурирования, система конфигурирования и сборки, компиляция, проект gnu, по, бесплатные программы, бесплатное по, софт, разработка по, soft, программное обеспечение, software, спо, документация для программиста, программное обеспечение по

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.