4
我可能會錯過一些很明顯與這個Makefile:Makefile文件始終運行目標
convert: devel/bar
touch convert
init: devel/foo
echo 'init'
devel/foo:
mkdir -p devel
touch devel/foo
devel/bar: init
touch devel/bar
當我運行它時,devel/bar
目標始終被調用。我期望它調用convert
,檢查文件devel/bar
,並且只有在找不到該文件時才調用該目標。如果我刪除它對init
的依賴關係,那麼一切都按我的預期工作。我究竟做錯了什麼?
使用'.PHONY:init'將保持'就算他創建了一個名爲'init'文件init'外的日期。聽起來和他想要的完全相反。 –
哎呀,對不起。 '.INTERMEDIATE'可能會訣竅。但是,這就是它運行目標的原因 - 它試圖首先創建一個名爲init的文件。 –