使文件头文件依赖

时间:2011-03-22 16:02:57

标签: c++ makefile

我想在make文件中添加头文件依赖

我写了规则

 ${OBJECTDIR}/%.o: %.cc %.h
 gcc  $(WarningLevel)  $(CFLAGS) $(INCLUDES)  -c  -o $@  $^

但有两个错误

一个.cc文件,没有任何.h文件。它不会给出任何规则。 第二个是按规则构建的目标文件,在链接时给出错误

file format not recognized; treating as linker script

我怎样才能实现这一目标? (如果头文件被修改,则应该编译源文件)

2 个答案:

答案 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文件需要重新编译)。