Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Makefile依赖项中包含生成的文件_Makefile_Dependencies - Fatal编程技术网

在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,您已经显示了链接规则,但错误显然是指编译错误。