我想在make文件中添加头文件依赖
我写了规则
${OBJECTDIR}/%.o: %.cc %.h
gcc $(WarningLevel) $(CFLAGS) $(INCLUDES) -c -o $@ $^
但有两个错误
一个.cc文件,没有任何.h文件。它不会给出任何规则。 第二个是按规则构建的目标文件,在链接时给出错误
file format not recognized; treating as linker script
我怎样才能实现这一目标? (如果头文件被修改,则应该编译源文件)
答案 0 :(得分:2)
首先,您没有向我们展示您的链接命令。其次,你不应该在这里使用$^
。 $^
扩展为所有依赖项的列表(此处为.c
和.h
),但我们只想编译.c
文件。使用$<
,它仅扩展为第一个依赖项的名称:
${OBJECTDIR}/%.o: %.c %.h
gcc $(WarningLevel) $(CFLAGS) $(INCLUDES) -c -o $@ $<
答案 1 :(得分:1)
您需要为列出的头文件依赖关系提供规则:
%.h:
echo This is my build target for header files.
Make实际上不会对%.h文件做任何事情,但至少你告诉它要注意文件更改(这会导致.o文件需要重新编译)。