Большинство приложений Linux скомпилированы с:
make
make install clean
Как я понял, make принимает имена целей сборки в качестве аргументов. Так install
что цель, которая копирует некоторые файлы, а после этого clean
цель, которая удаляет временные файлы.
Но какую цель будет make
строить, если не указаны аргументы (например, первая команда в моем примере)?
all
- это просто соглашение.make install
in sudo, а не всю сборку.include
другим make-файлом, чья первая цель%.o : %.cpp
. Итак, целью по умолчанию является ... собрать все файлы .cpp?Чтобы сэкономить другим несколько секунд и избавить их от необходимости читать руководство, вот краткий ответ. Добавьте это в начало вашего файла make:
mytarget теперь будет целью, которая выполняется, если выполняется make, и цель не указана.
Если у вас более старая версия make (<= 3.80), это не сработает. Если это так, то вы можете делать то, что упоминается, просто добавив это в начало вашего файла make:
Ссылки: https://www.gnu.org/software/make/manual/html_node/How-Make-Works.html
источник
GNU Make также позволяет вам указать цель make по умолчанию, используя специальную переменную с именем
.DEFAULT_GOAL
. Вы даже можете сбросить эту переменную в середине файла Makefile, в результате чего следующая цель в файле станет целью по умолчанию.Ссылка: Руководство по Gnu Make - Специальные переменные
источник