У меня есть проект C++. В моей папке «Проект» у меня есть три папки подпроектов.makefile принять зависимость от всего файла в определенном каталоге
Proj_Folder
Include
head1.h
head2.h
....
Sub_Proj1
proj1.cpp
makefile
Sub_Proj2
proj2.cpp
makefile
Sub_Proj3
proj3.cpp
makefile
ShareAll.cpp
makefile
Это файл makefile в папке «Proj_Folder».
OBJS = ../ShareAll.o proj1.o
proj1: ${OBJS}
${CXX} ${CFLAGS} -o [email protected] $+
proj1.o : proj1.cpp
${CXX} ${CFLAGS} -c $< -o [email protected]
../ShareAll.o : ../ShareAll.cpp
${CXX} ${CFLAGS} -c $< -o [email protected]
Мне нужно включить все файлы заголовков, которые находятся в каталоге «Включить» в качестве зависимости для всего проекта.
Я пробовал этот ниже код.
C_HEADER_FILES := $(patsubst Include/*.h)
# The dependency file names.
DEPS := $(C_HEADER_FILES:.h=.d)
# Let make read the dependency files and handle them.
-include $(DEPS)
Но он говорит,
makefile:30: *** insufficient number of arguments (1) to function `patsubst'. Stop.
Как я могу включить все файлы заголовков, как зависимость в этом проекте Makefile?
«Правильный» способ обращения с этим состоял бы в том, чтобы GCC генерировал файлы зависимостей с чем-то вроде «-MMD». – user657267