В настоящее время я делаю Linux From Scratch. Я скачал несколько пакетов. Разархивирую их с помощью команды tar и сделаю следующее внутри этого извлеченного пакета:
- конфигурировать
- делать
- сделать тест
- сделать установку
Еще одна вещь, что такое makefile?
Пожалуйста, объясните мне назначение этих команд, особенно с точки зрения LFS. Заранее спасибо.
autotools
, Если вы проверите Google, WikiPedia и т. Д. ДляMakefile
а такжеautotools configure script
Вы должны получить много ресурсов для изучения о них.Ответы:
Я (вроде) знаю, что он делает, но я не уверен, что знаю, как объяснить.
В основном с помощью последовательности команд, которую вы упомянули, вы создаете что-то в двоичном исполняемом виде (программу, библиотеку) из исходного кода (то есть кода, написанного на языке программирования) и устанавливаете его в своей операционной системе (перемещая его в соответствующую папку). , настройка файлов конфигурации и т. д.).
Makefile - это текстовый файл, который использует команда make. Это помогает (автоматизирует) задачи. Один make-файл может содержать информацию для выполнения более чем одной задачи или действия. Без make-файла вам пришлось бы выполнять множество сложных ручных шагов, чтобы добиться цели.
"настроить": (объяснение взято из Вот ) Проверяет некоторые подробности о машине, на которой будет установлено программное обеспечение. Этот скрипт проверяет множество зависимостей в вашей системе. Для правильной работы определенного программного обеспечения может потребоваться, чтобы на вашем компьютере уже существовало много вещей. Если в вашей системе отсутствуют какие-либо основные требования, сценарий конфигурирования завершится, и вы не сможете продолжить установку, пока не получите требуемые вещи. В противном случае он создает Makefile для использования на следующем шаге.
«make» без параметров: указывает make для выполнения действия (правила) по умолчанию в make-файле. Обычно он компилирует, связывает и генерирует двоичный файл, который вы пытаетесь создать (т.е. программу или библиотеку). Обычно это включает в себя преобразование исходного кода в объектные файлы (которые обычно имеют
.o
расширение) и связывание их в окончательный двоичный файл (который в случае программ Linux обычно не имеет расширения или в случае библиотек Linux обычно имеет.so
или же.a
расширение). Я не уверен насчет шагов, потому что я программист на Java, и мы не часто выполняем эти шаги).«make test»: выполняет тесты для этого двоичного файла.
«make install»: в основном перемещает бинарный файл в правильную папку.
Это объяснение, конечно, может получить много улучшений, я просто пытаюсь дать вам общее представление о процессе.
Этот короткий учебник может предоставить дополнительную информацию.
источник
Использование
Makefile
облегчает жизнь как разработчику, так и конечному пользователю. По сути, это шпаргалка о том, как создать конкретную часть программного обеспечения. Для простого "Привет, мир"g++ hw.cpp -o hello_world
может работать. Тем не менее, когда у вас гораздо более сложное программное обеспечение, часто перед созданием компонента B необходимо построить компонент A, а после того, как эти два будут выполнены, можно создать компонент C. Вывод их вручную, а также вставка путей во включенные библиотеки, временные выходные файлы, окончательные пути установки и т. Д. (Обычно определяется, когдаconfigure
скрипт запущен) - может привести к ошибке.источник