2016-02-03 53 views
0

我试图让omake在我的bin目录中创建东西。我试图OMake bin目录

LIB = ../bin/mylib 
.DEFAULT: $(OCamlLibrary $(LIB), $(FILES)) 

但只有u和.cmxa在仓结束,所有的.cmx .cmi和中的.o SRC结束。我究竟做错了什么?

回答

1

没有错。 OMake的内置OCaml相关规则编译每个模块并在源代码的同一目录中生成其对象(.cmo,.cmi,.cmx和.o)。

$(OCamlLibrary $(LIB), $(FILES))功能链接这些模块对象,并产生库文件$(LIB).cma,$(LIB).cmxa$(LIB).a,就像你所看到的。

如果要更改目标文件的目标目录,则必须修复OCaml的构建规则。它们在OMake的库目录中找到的OCaml.om中定义,但我不得不说这是非常具有挑战性的。

+0

'$(OCamlLibrary ..)'目标完成后没有办法执行复制/符号链接规则吗? – rgrinberg