Я работаю над проектом, в котором Makefile используется случайным образом. Структура проекта показана ниже
ProjectX ---- AppA
---- AppB
---- LibC
---- LibD
---- ToolE ---- AppF
---- LibG
Все эти папки и подпапки имеют свои собственные Make-файлы. Они вызываются одна за другой из ProjectX, ToolE и т. Д. В этой настройке AppA может зависеть от LibC / LibD и т. Д. Но поскольку у них другой Makefile, зависимости не упоминаются должным образом в целевом рецепте.
Теперь проблема в том, что я хотел бы, чтобы этот проект компилировался параллельно (make -jN
)
Я попытался сгенерировать файлы зависимостей, используя опцию gcc -M
и include
, создавая эти файлы зависимостей вMakefile. Но иногда я вижу только то, что создаются .o
, но не библиотека или приложение. Это может быть потому, что make видит зависимость и ожидает ее готовности. Но не знает, как возобновить?
Как лучше всего это исправить.
ОБНОВЛЕНИЕ
Я понимаю, что рекурсивное создание - это плохо. Но если вы застряли с этим по унаследованным причинам, трудно заставить параллельную работу работать.
Подробнее о том, почему рекурсивная сборка плоха, смотрите это