在Makefile依赖项中包含生成的文件
我有一组生成的文件在Makefile依赖项中包含生成的文件,makefile,dependencies,Makefile,Dependencies,我有一组生成的文件 GENERATED = log/loga.c log/logb.h include/loga.h 我下面的目标initproc取决于上面生成的。但是我不能像$(INIT_OBJS)那样将$(生成的)包含在下面。上面说 致命错误:include/loga.h:当我执行makeinitproc initproc: $(INIT_OBJS) log/loga.o init/initb.o settings/settingc.o $(CXX) $(CXXF
GENERATED = log/loga.c log/logb.h include/loga.h
我下面的目标initproc
取决于上面生成的。但是我不能像$(INIT_OBJS)
那样将$(生成的)
包含在下面。上面说
致命错误:include/loga.h:当我执行makeinitproc
initproc: $(INIT_OBJS) log/loga.o init/initb.o settings/settingc.o
$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ $(LDLIBSXX) -o $@
如何包含上面的依赖项?您必须添加一个$(已生成)
目标,并使用一些规则来解释如何生成此文件。此外,还必须使用一些and函数来管理头文件、源文件和目标文件。类似的东西应该会起作用:
#所有生成的文件(源文件和头文件)
生成:=log/loga.c log/logb.h include/loga.h
#生成此文件的规则
$(已生成):
#从生成的源文件生成对象文件的规则
#这可以与Makefile中的另一个规则合并
已生成的\u SRC:=$(筛选器%.c,$(已生成))
生成的对象:=$(patsubst%.c、%.o、$(生成的对象))
$(生成的对象):$(生成的对象)
$(CXX)$(CXXFLAGS)-c$^-o$@
#最终目标取决于生成的对象文件
initproc:$(INIT_OBJS)$(生成的_OBJ)
$(CXX)$(CXXFLAGS)$(LDFLAGS)$^$(LDLIBSXX)-o$@
Post-an,您已经显示了链接规则,但错误显然是指编译错误。