0
我已經發布了我的makefile的相關位。當我在此生成文件上運行make all
時,在編譯debugosd.o
時出現編譯錯誤。但是,因爲make找到了以前建造的debugosd.o
,它只是繼續構建dialup.otz
。如何編譯一個依賴失敗時強制退出?
沒有刪除所有的.o's,我如何強制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
繼續不管錯誤。
奇怪的是,我以爲make就已經這樣做了。 – Pace 2010-01-28 14:19:14
是的,我也是 - 繼續構建shared2.flw和shared3.flw。 – BeeBand 2010-01-28 14:25:36