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

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

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

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

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

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

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

Если вы не используете дерево Cygnus, вы должны явно указать кросс-средства, которые хотите использовать для сборки программы. Это делается путем задания переменных окружения перед запуском скрипта `configure'.

Во всяком случае, вам скорее всего придется так установить переменные окружения `CC', `AR' и `RANLIB', чтобы они указывали на кросс-средства, которые вы будете использовать для сборки.

Для некоторых программ вы должны ввести также дополнительные средства, такие как `AS', `LD' или `NM'.

Вы должны задать эти переменные окружения для сборки кросс-средств, которые собираетесь использовать.

Например, если вы собираете программу для Solaris на системе GNU/Linux, и ваш GNU/Linux кросс-Solaris компилятор называется `solaris-gcc', то вы должны установить переменную окружения `CC' в значение `solaris-gcc'.

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

Этот раздел описывает конфигурирование и сборку канадского креста при использовании дерева Cygnus.

Сборка обычных программ

Когда канадский крест конфигурируется в дереве Cygnus, все присущие ему переменные окружения автоматически устанавливаются в `host-tool', где host — это значение, используемое для опции `--host', а tool — имя средства компиляции (например, `gcc', `as' и т.д.). Эти средства должны быть в вашем `PATH'.

При сборке кросс-хозяйских средств к их имени обычно добавляется префикс host. Рассмотрим это, полагая, что когда данные кросс-средства будут собраны, они будут конфигурироваться для запуска на сборочной системе, чтобы произвести код для хозяйской системы. То есть, они будут конфигурироваться с опцией `--target', в которой следует указывать ту систему, которую мы называем хозяйской. Вспомним, что дефолтное имя устанавливаемых кросс-средств использует целевую систему как префикс (смотрите раздел Использование типа цели). Поскольку теперь мы эту систему называем хозяйской, то правильным префиксом для использования является host.

Например, если вы конфигурируете с опциями `--build=i386-linux-gnu' и `--host=solaris', то по умолчанию дерево Cygnus будет автоматически использовать компилятор `solaris-gcc'. Вы должны иметь этот компилятор предварительно собранным, и, возможно, собирать его нужно будет без опции `--host' и с опцией `--target', установленной в `solaris'.

Сборка кросс-программ

Обсудим подробнее различия между сборкой кросс-компилятора и сборкой нативного компилятора в дереве Cygnus с использованием канадского креста.

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

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

Заметим, что это не требуется канадским крестом как таковым. Например, предположим возможной сборку именно хозяйских кросс-целевых средств на сборочной системе. Скопируем эти средства на хозяйскую систему и соберем целевые библиотеки на хозяйской системе. Требование сборки кросс-целевых средств налагается деревом Cygnus, которое полагает возможной сборку как хозяйских программ, так и целевых библиотек за один шаг `configure'/`make'. Поскольку сборка осуществляется за один шаг, ожидается, что целевые библиотеки могут быть собраны на сборочной системе, а это предполагает, что должен использоваться сборочный кросс-целевой набор средств.

Например, допустим вы хотите собрать Windows кросс-MIPS ELF компилятор на системе GNU/Linux. Вы должны иметь предварительно установленные GNU/Linux кросс-Windows компилятор и GNU/Linux кросс-MIPS ELF компилятор.

При сборке под Windows (имя конфигурации `i386-cygwin32') кросс-MIPS ELF (имя конфигурации `mips-elf') компилятора, вы можете выполнить следующие команды (длинные строки команд разбиты обратным слэшом, который является символом продолжения):

mkdir linux-x-cygwin32
cd linux-x-cygwin32
srcdir/configure --target i386-cygwin32 --prefix=installdir \
  --exec-prefix=installdir/H-i386-linux
make
make install
cd ..
mkdir linux-x-mips-elf
cd linux-x-mips-elf

srcdir/configure --target mips-elf --prefix=installdir \
  --exec-prefix=installdir/H-i386-linux
make
make install
cd ..
mkdir cygwin32-x-mips-elf
cd cygwin32-x-mips-elf
srcdir/configure --build=i386-linux-gnu --host=i386-cygwin32 \
  --target=mips-elf --prefix=wininstalldir \
  --exec-prefix=wininstalldir/H-i386-cygwin32
make
make install

Вы можете скопировать содержимое wininstalldir на машину с Windows и запустить собранные программы.


Назад Вперед
Канадский крест Поддержка канадского креста

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


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

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

Последнее редактирование: 2011-12-21 01:52:38

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

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

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

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


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