我的源码旁边有一个构建目录
ocamlc -c file1.ml
ocamlc -c file2.ml
…
ocamlc -o main.ml ….cmo
我的源代码是编译生成的文件。
我想要一个ocamlc
的选项,使我能够在构建目录中拥有此文件。
我知道我可以做ocamlc -o build/main.ml .....cmo
但我也想在构建目录中使用.cmo
感谢您的帮助
答案 0 :(得分:3)
您的主要问题的答案很简单:
为了将OCaml应用程序的主二进制文件放在build
文件夹中,您只需要运行:
ocamlc -o build/main.exe main.ml ….cmo
确实如文档(man ocamlc
)中所示:
-o exec-file
指定链接器生成的输出文件的名称。该 默认输出名称是a.out,符合Unix传统。 [...]
但是,按照您在问题中建议的方式手动完成所有构建步骤可能效果不是很好(特别是,所有 .cmo 文件都会保留在同一个源中文件夹)。
为了避免这种情况并促进OCaml项目的构建,我建议使用OCaml的构建管理工具,例如教程末尾提到的四个工具之一Compiling OCaml Projects:
(ocamlbuild可能是四种中最容易使用的工具。)
但您也可以考虑使用Dune (formerly known as JBuilder),这是opam中大多数软件包使用的构建系统。