我很困惑。我已經看到了一些類似的問題,但沒有一個解決我的問題。所以,我有這個劇本我抓起在線,通過這樣的makefile運行自動壓縮JavaScript文件:Makefile無法爲xxx完成
concatenated.min.js: file1.js file2.js
java -jar ~/bin/compiler.jar $(addprefix --js=,$^) >[email protected]
我這裏有
JS_TARGETS = a.js b.js c.js d.js
CLOSURE = java -jar ~/bin/compiler.jar
CLOSURE_FLAGS =
JS_MINIFIED = $(JS_TARGETS:.js=.min.js)
JS_GZIP = $(JS_TARGETS:.js=.js.gz)
JS_MIN_GZIP = $(JS_TARGETS:.js=.min.js.gz)
js: $(JS_TARGETS) $(JS_MINIFIED) $(JS_GZIP) $(JS_MIN_GZIP)
%.min.js: %.js
$(CLOSURE) $(CLOSURE_FLAGS) --js=$< >[email protected]
這個make文件在同一目錄a.js,B。 js,c.js和d.js我有一個文件concat.min.js。然後,我運行make concat.min.js
,makefile給了我'concat.min.js沒有任何工作要做'。
我也認爲這個問題是因爲我錯過了%.min.js
規則中的$(addprefix --js=,$^) >[email protected]
。但它似乎仍然給我同樣的錯誤,即使我將它添加到規則中。我做錯了什麼/錯字?謝謝。
您確定*您在調用'make'的目錄中有一個名爲'a.js'的文件? Make明確表示你不知道。 – derobert 2012-01-15 09:43:26
是的,最後的作品。但我真正的目標是將它們連接在一起,這仍然不起作用。 – 2012-01-15 10:05:55
「無事可做」表示目標比其依賴關係更新,因此它不需要重新制作。如果你想無條件地重新創建它,那麼把它變成一個假冒;如果您有Make不知道的其他依賴項,請在Makefile中聲明它們。 – tripleee 2012-01-15 10:36:11