我正在尝试在我的bin目录中构建omake。我试过了
LIB = ../bin/mylib
.DEFAULT: $(OCamlLibrary $(LIB), $(FILES))
但只有.a和.cmxa最终在bin中,所有.cmx .cmi和.o最终都在src中。我做错了什么?
答案 0 :(得分:1)
没错。 OMake的内置OCaml相关规则编译每个模块并在源代码的同一目录中生成其对象(.cmo,.cmi,.cmx和.o)。
$(OCamlLibrary $(LIB), $(FILES))
函数链接这些模块对象并生成库文件$(LIB).cma
,$(LIB).cmxa
和$(LIB).a
,就像您所见。
如果要更改目标文件的目标目录,则必须修复OCaml的构建规则。它们在OMake的库目录中的OCaml.om
中定义,但我不得不说这非常具有挑战性。