GNU устанавливает порядок при выполнении нескольких заданий - PullRequest
0 голосов
/ 03 июня 2019

У меня есть make-файл all: clean $(binary_output_path)/$(target_executable), который сначала очищает выходной каталог и исполняемый файл сборки.Проблема в том, что я хочу использовать -j10: иногда он начинает собирать и очищать одновременно, поэтому сборка не удалась, очевидно.Как я могу преодолеть это и выполнить задачи по порядку, но на нескольких ядрах?

1 Ответ

0 голосов
/ 06 июня 2019

Вы должны добавить зависимость:

$(binary_output_path)/$(target_executable): | clean

Тем не менее, это не очень хорошая идея, чтобы использовать чистоту, как это вообще. Просто есть

all: $(binary_output_path)/$(target_executable)

$(binary_output_path)/$(target_executable): предпосылки

напишите здесь свой рецепт, который строит эту цель

Вы должны сосредоточиться на написании make-файлов таким образом, чтобы очистка не требовалась. Если вам необходимо выполнить очистку перед сборкой исполняемого файла, выясните, почему это так, и напишите свои команды, которые создают исполняемый файл, таким образом, чтобы они работали независимо от того, «очищены» вы или нет.

...