2017-06-06 86 views
2

我下面這個OCamlbuild example,並據此創建了下面的Makefile:OCaml的Makefile文件:沒有規則,以使目標

OCB_FLAGS = -use-ocamlfind -I src -I lib 
OCB = ocamlbuild $(OCB_FLAGS) 

check: ocamlfind query core async 
clean: $(OCB) -clean 
byte: $(OCB) main.byte 
native: $(OCB) main.native 

.PHONY: check clean byte native 

根目錄包含兩個子目錄,SRCLIBsrc子目錄包含文件main.ml

當我執行任何目標時,例如make cleanmake byte,等等,我收到錯誤消息:

化妝:***沒有規則,使目標的ocamlfind「,通過 '檢查' 需要。 停止。

化妝:***沒有規則,使目標的ocamlbuild',由 '字節' 需要。 停止。

我很感謝幫助理解此錯誤的原因和解決方案。謝謝。

回答

3

這條線:

clean: $(OCB) -clean 

就是說clean由兩所部分組成,$(OCB)-clean。所以它首先嚐試建立ocamlbuild

你想這一點,因爲在鏈接生成文件:

clean: 
     $(OCB) -clean 

這意味着clean沒有依賴性,而且是「做」的運行$(OCB) -clean

請注意,您需要$字符之前的實際製表符,而不是8個空格。