我已经发布了我的 makefile 的相关位。当我make all
在这个makefile上运行时,编译时出现编译错误debugosd.o
。但是,因为 make 找到了一个以前构建的debugosd.o
,它只是继续构建dialup.otz
。
在不删除所有 .o 的情况下,我如何强制debugosd.o
使其过时 - 因此make
一旦遇到编译错误就强制停止debugosd.o
?
构建 .o 文件的规则是:
%.o: %.c
$(TITLE)
$(CC) $(COMPILE) $(C_OPTIONS) -c $<
makefile 片段是:
all: shared0.flw shared1.flw shared2.flw shared3.flw
debugosd.o: debugosd.c debugosd.h
xdialler_interface_new.o: xdialler_interface.h
dialup.ooo: xdialler_interface_new.o debugosd.o xDialler.a
$(TITLE)
$(MAKE_OOO)
dialup.otz: dialup.ooo
$(BIN)opress $<
shared1.dir: dialup.otz
$(TITLE)
$(BIN)dirbuild $(SHAREDDIR1_OPTIONS)
shared1.flw: shared1.dir
$(TITLE)
$(BIN)flwbuild $(SHAREDFLW_OPTIONS1)
实际上,我发现了问题所在。shared1.flw
我正在强制使用虚假目标进行重建。我认为make
无论错误如何,这都会迫使它继续进行。