Подписаться через RSS2Email.ru
|
Иан Ланс Тейлор
Часто задаваемые вопросы
- Что мне запускать первым, `autoconf' или
`automake'?
- За исключением случая, когда вы впервые добавляете в пакет поддержку
autoconf или automake, вы не должны запускать их вручную. Вместо этого
конфигурируйте с опцией `--enable-maintainer-mode', и пусть
`make' позаботится о вашей проблеме.
- `autoconf' сообщает что-то о неопределённом макросе.
- Это значит, что в вашем `configure.in' имеется макрос, который
не определён посредством `autoconf'. Возможно вы используете
старую версию `autoconf'. Попытайтесь собрать и установить его
новую версию, убедитесь, что ново-установленный `autoconf'
первым прописан в вашем `PATH'. Смотрите также следующий
вопрос.
- В моем скрипте `configure' имеются такие выражения как
`CY_GNU_GETTEXT'.
- Это означает, что в вашем `configure.in' имеется макрос,
который должен быть определён в вашем файле `aclocal.m4', но его
там нет. Обычно это означает, что для `aclocal' недоступно
подходящее определение для этого макроса. Убедитесь, что вы установили все
необходимые пакеты. В частности, убедитесь, что вы установили libtool (в этом
случае определена `AM_PROG_LIBTOOL') и gettext (в этом случае
определена `CY_GNU_GETTEXT', по крайней мере для версии gettext
для Cygnus).
- В моем `Makefile' имеются символы `@'.
- Это может означать, что вы в своем `Makefile.in' пытаетесь
использовать замену autoconf без добавления соответствующего вызова
`AC_SUBST' в своем скрипте `configure'. Или это
означает, что вам необходимо пересобрать `Makefile' в вашей
сборочной директории. Чтобы пересобрать `Makefile' из
`Makefile.in', запустите шелл-скрипт `config.status'
без аргументов. Если вам снова необходимо принудительно запустить
`configure', сначала запустите
`config.status --recheck'. Обычно этот запуск делается
автоматически из `Makefile' цели, но если ваш
`Makefile' содержит указанную выше путаницу, вам следует ему
помочь.
- Почему приходится запускать и
`config.status --recheck', и
`config.status'?
- Обычно не приходится. Они запускаются автоматически из
`Makefile' целей. Если вам нужно их запустить, используйте
`config.status --recheck' для повторного запуска скрипта
`configure' с теми же аргументами, с какими вы запускали его в
первый раз. Использование `config.status' (без аргументов)
приводит к перегенерации всех файлов (`Makefile',
`config.h' и др.), зависящих от результата скрипта
конфигурирования. Эти два случая различаются потому, что не всегда необходима
перегенерация всех файлов после запуска
`config.status --recheck'. `Makefile'-ы
целей, генерируемые с помощью automake, используют переменные окружения
`CONFIG_FILES' и `CONFIG_HEADERS' только для
перегенерации файлов, когда это необходимо.
- Что такое дерево Cygnus?
- Дерево Cygnus используется для различных пакетов, включая gdb, GNU binutils
и egcs. Также оно, разумеется, используется для релизов Cygnus. Оно является
сборочной системой, которая была разработана в компании Cygnus с использованием
скрипта конфигурирования Cygnus. Оно позволяет собирать множество различных
пакетов с помощью единственных запусков configure и make. Скрипты
конфигурирования в этом дереве были конвертированы для autoconf, но общая
сборочная структура осталась нетронутой.
- Почему мне приходится пересобирать и переустанавливать средства сборки?
- Я знаю, это больно. К сожалению, в самих этих средствах есть баги, которые
необходимо фиксить, и каждый раз как это происходит, всем, кто их использует,
приходится переустанавливать их новые версии. Я не знаю, имеются ли в них
исправления, поскольку для этого пока нет достаточно умных стабильных
средств.
- Почему бы просто не иметь цель `make' в дереве Cygnus для
обновления этих средств?
- К сожалению, чтобы использовать эти средства, они должны быть предварительно
инсталлированы. Это означает, что они должны быть собраны с использованием
соответствующего префикса, и представляется неразумным считать, что каждая
конфигурация использует соответствующий префикс. Можно было бы заставить их
работать на месте, или можно было бы устанавливать их в какие-то поддиректории,
но до сих пор эти подходы не были реализованы.
Перевод: Дмитрий Скоробогатов, 25.12.2011.
Оригинальный текст можно найти по адресу
http://www.airs.com/ian/configure/configure_9.html.
Предыдущие публикации:
Последнее редактирование: 2011-12-25 01:52:02
Метки материала:
gnu, система конфигурирования, система конфигурирования и сборки, компиляция, проект gnu, по, бесплатные программы, бесплатное по, софт, разработка по, soft, программное обеспечение, software, спо, документация для программиста, программное обеспечение по
Оставьте, пожалуйста, свой комментарий к публикации
|