Что такое команда `./ Configure`?
Я обычно вижу ./configure
строить что-то. Это выглядит сценарий, созданный инструментом. И сегодня я понял, что не знаю, что это такое.
Что это? Какова роль этого сценария, и кто это делает? И как я могу сделать что-то подобное?
3 ответа
Каждая система отличается. Например, существуют разные компиляторы и версии компиляторов, инструменты вашей системы могут поддерживать определенные флаги (или нет), у вас могут быть установлены определенные библиотеки или нет, и т. Д. С. Есть много вещей, которые могут отличаться на компьютерах, которые могут влиять на то, как составить проект.
configure
Сценарий пытается выяснить все эти вещи и выдает жалобу, если не выполнены предварительные условия (например, когда отсутствует компилятор или отсутствует библиотека). Затем он генерирует Makefile, специфичный для вашей системы, и просто набирает make
(надеюсь) правильно построит проект в вашей системе.
До configure
Мы должны были вручную настроить Make-файлы (часто настраиваемые части были смещены в отдельный Make-файл). Это означало, что вам нужно было много знать о вашей системе, и часто вам нужно было изменить Make-файлы. Это было большим препятствием, тем более что почти каждый проект делал это по-своему. GNU autoconf
а также automake
(которые разбирают Makefile.am
а также configure.ac
файлы для генерации Makefile.in
а также configure
скрипты) очень упрощенные вещи здесь (особенно если вы делаете экзотические вещи, такие как кросс-компиляция, для которой почти ни один проект не хочет добавлять поддержку; если вы делаете autoconf
/automake
в чистом виде, чем вы получаете кросс-компиляцию бесплатно, например).
Обычно это скрипт, созданный GNU autoconf. Другие инструменты сборки также могут использовать то же имя. Autoconf - довольно сложный инструмент, но в Интернете доступно несколько коротких руководств. Мне нравится этот: http://www.edwardrosten.com/code/autoconf/index.html
GNU Autoconf Autoconf генерирует скрипт настройки на основе содержимого файла configure.ac, который характеризует конкретную часть исходного кода. При запуске сценария configure сканирует среду сборки и генерирует подчиненный сценарий config.status, который, в свою очередь, преобразует другие входные файлы и чаще всего Makefile.in в выходные файлы (Makefile), которые подходят для этой среды сборки. Наконец, программа make использует Makefile для генерации исполняемых программ из исходного кода.