2012-05-31 3 views
3

Я загрузил ядро ​​Linux и начал компилировать его, так что вопрос возник с Я строю на старом ноутбуке.Что произойдет, если я прерву процесс создания ядра Linux?

Что делать, если я нажал Ctrl-C, а make -ing, а затем запустил make еще раз; он начинает сборку с самого начала?

+0

Да. Он перезапишет все, что он сделал до сих пор. –

+4

Цель 'make' - выборочно выполнять только задачи, необходимые для обновления всех целей, которые не существуют или чьи входы более свежие. Я не выдаю 'make clean', тем не менее, он не будет восстанавливать обновленные цели. –

+1

@flo совершенно неправильно и frederic-hamidi, возможно, для полноты вы можете добавить его, придется перепроверять зависимости (что также занимает некоторое время на более медленных машинах), но не воссоздает последние цели. – fvu

ответ

7

Простой ответ до тех пор, пока все файлы-мишени, создающие файл, все еще существуют и имеют более новую временную метку, чем файлы, от которых они зависят, они не будут восстановлены. Как правило, чтобы избежать поведения, которое вы пытаетесь избежать, вам придется выдать команду make clean или что-то подобное.

+0

Если да, то я могу продолжить сборку в цель, которую я выбрал? до тех пор, пока я не изменю файлы, они будут пропущены правильно? –

+0

Да, он должен возобновиться с того места, где вы остановились. – ThePosey

+0

Что еще более важно, он будет повторно выполнять цель, над которой она работала, когда она была прервана (например, объектный файл). Выполнение по умолчанию удаляет текущую цель при прерывании, чтобы убедиться, что полузаписные файлы не будут подвергать риску следующие шаги (см. Https://www.gnu.org/software/make/manual/html_node/Interrupts.html). –

Смежные вопросы