OCaml Makefile:没有制定目标的规则
OCaml Makefile: No Rule to Make Target
我正在关注此 OCamlbuild example,因此创建了以下 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
根目录包含两个子目录,src和lib。 src 子目录包含文件 main.ml.
当我执行任何目标时,例如make clean
、make byte
等,我收到错误消息:
make: *** No rule to make target 'ocamlfind', needed by 'check'.
Stop.
或
make: *** No rule to make target 'ocamlbuild', needed by 'byte'.
Stop.
如果您能帮助我理解此错误的原因和解决方法,我将不胜感激。谢谢。
这一行:
clean: $(OCB) -clean
表示clean
有两个依赖,$(OCB)
和-clean
。所以它首先尝试构建 ocamlbuild
。
您想要这个,如链接的 makefile 中所示:
clean:
$(OCB) -clean
这意味着 clean
没有依赖关系,并且是 "done" by 运行 $(OCB) -clean
.
请注意,在 $
字符之前需要一个实际的制表符,而不是 8 个空格。
我正在关注此 OCamlbuild example,因此创建了以下 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
根目录包含两个子目录,src和lib。 src 子目录包含文件 main.ml.
当我执行任何目标时,例如make clean
、make byte
等,我收到错误消息:
make: *** No rule to make target 'ocamlfind', needed by 'check'. Stop.
或
make: *** No rule to make target 'ocamlbuild', needed by 'byte'. Stop.
如果您能帮助我理解此错误的原因和解决方法,我将不胜感激。谢谢。
这一行:
clean: $(OCB) -clean
表示clean
有两个依赖,$(OCB)
和-clean
。所以它首先尝试构建 ocamlbuild
。
您想要这个,如链接的 makefile 中所示:
clean:
$(OCB) -clean
这意味着 clean
没有依赖关系,并且是 "done" by 运行 $(OCB) -clean
.
请注意,在 $
字符之前需要一个实际的制表符,而不是 8 个空格。