這裏是我的makefile
部分:系統地清理文件編譯前
all: $(CMX_DOMAIN)
analyze
clean:
rm -rf */*.o */*.cmo */*.cmi */*.cmx */*.cma */*.cmxa */*.cmo */*.cmi */*.annot \
$(AUTOGEN) */*~ */*.log */*.output depend analyze print batch
修改代碼後,我需要推出make
之前鍵入make clean
。否則,經常存在不一致的依賴性問題。
現在我想修改makefile
,這樣在每次調用all
之前系統地完成clean
。然後我寫
all: clean
$(CMX_DOMAIN)
analyze
當我啓動make
,文件的清理後,它給了我一個錯誤/bin/bash: values/consts_bool.cmx: No such file or directory
,其中values/consts_bool
是文件列表中的第一個組件。這很奇怪,因爲這個文件不存在是正常的,應該在之後生成。
任何人都可以幫忙嗎?
你應該解決「不一致的依賴問題」,而不是試圖添加一個「乾淨的」規則。一個合適的makefile將始終重建過時的內容,而不是重建未過期的內容。如果你的makefile沒有這樣做,那麼它沒有被正確寫入。正如tripleee所說,如果你想每次都清理一切,那麼makefile對你來說完全沒用。只需編寫一個shell腳本,每次從頭開始編譯代碼,並忘記完成make。 – MadScientist