Использование зависимостей Makefile - PullRequest
1 голос
/ 08 октября 2019

Я работаю над проектом, в котором Makefile используется случайным образом. Структура проекта показана ниже

ProjectX ---- AppA
         ---- AppB
         ---- LibC
         ---- LibD
         ---- ToolE ---- AppF
                    ---- LibG

Все эти папки и подпапки имеют свои собственные Make-файлы. Они вызываются одна за другой из ProjectX, ToolE и т. Д. В этой настройке AppA может зависеть от LibC / LibD и т. Д. Но поскольку у них другой Makefile, зависимости не упоминаются должным образом в целевом рецепте.

Теперь проблема в том, что я хотел бы, чтобы этот проект компилировался параллельно (make -jN)

Я попытался сгенерировать файлы зависимостей, используя опцию gcc -M и include, создавая эти файлы зависимостей вMakefile. Но иногда я вижу только то, что создаются .o, но не библиотека или приложение. Это может быть потому, что make видит зависимость и ожидает ее готовности. Но не знает, как возобновить?

Как лучше всего это исправить.

ОБНОВЛЕНИЕ

Я понимаю, что рекурсивное создание - это плохо. Но если вы застряли с этим по унаследованным причинам, трудно заставить параллельную работу работать.

Подробнее о том, почему рекурсивная сборка плоха, смотрите это

...