Что плохого в этом (учитывая параллельное изготовление)? - PullRequest
1 голос
/ 22 марта 2011

У меня есть 2 dirs A, и в пределах A у меня есть B.

Makefile в каталоге A выглядит так:

include rules.mk            //defines common rules for generating *.o from *.cpp *.c

OBJECTS = test.o \
          B\test1.o \
          B\test2.o

test.lo : $(OBJECTS)
   $(LD) $(LD_OPTS) -o $@ $^
   $(CREATE_CXX_SO)

Поскольку B не имеет Makefile, определенного в нем.

Обязательно ли наличие Make-файлов в подкаталогах? Для серийных сборок это не представляет проблемы, но при выполнении параллельных сборок время от времени $(LD) пытается сделать conn.lo даже до того, как B/test1.o и B/test2.o скомпилированы.

Если то, что я делаю выше, неправильно, какие у меня есть варианты?

1 Ответ

0 голосов
/ 22 марта 2011

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

Или вы можете использовать SCons , который прекрасно работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...