编译OCaml项目的简单方法是什么?

时间:2009-09-27 13:01:28

标签: compiler-construction ocaml build-system ocamlbuild

我正在玩OCaml。我想知道如何做的第一件事是建立一个OCaml项目。现在,我只是想要一些简单的东西,因为我刚学习。任何人都可以指向构建系统以及使用该构建系统的“hello world”类型示例吗?

7 个答案:

答案 0 :(得分:11)

ocamlopt是标准的本机代码编译器。典型的构建语法是:

ocamlopt -o execname module1.ml module2.ml

您可以使用ocamlc编译为字节码。

通常已包含标准库。如果您使用的是* nix系统,并希望包含unix库,那么您可以执行类似

的操作
ocamlopt -o execname unix.cmxa module1.ml module2.ml

cmxa文件是本机代码库,cma文件是字节码库。

对于更复杂的构建,有一个帮助定位库的ocamlfind程序。您还可以使用GNU make和类似工具。可以找到更多信息hereThis是关于使用gmake的页面。

This是一个很好的“Coder's First Ocaml”页面 Here是我在大学时收到的Ocaml课程的讲座页面。不要尝试向Gunter教授提出任何提示,但是,如果有记忆,她就是一个邪恶的巨魔。

答案 1 :(得分:8)

还有ocamlbuild。对于没有外部依赖关系的简单项目,它就像

一样简单
ocamlbuild prog.native

答案 2 :(得分:3)

您可能正在寻找ide。看看Know of an OCAML IDE?

http://www.ocaml-tutorial.org/compiling_ocaml_projects解释了编译基础知识。在该页面的底部有一个名为Automated build systems的部分,并链接到主题Compiling with GNU makeCompiling with Omake,其中包括样本。

答案 3 :(得分:3)

马库斯·莫特尔(Markus Mottle)看看ocaml-make。该项目包括OCamlMakefile。将其复制到源目录并创建Makefile,例如:

SOURCES = hello.ml
RESULT  = hello
-include OCamlMakefile

答案 4 :(得分:2)

您可能知道这一点,但是如果您不知道,OCaml包含一个REPL,您可以使用它来交互式编码而无需编译。当你第一次学习时它会非常有用。

答案 5 :(得分:1)

一个崭露头角的项目是OASIS,这是一个由Sylvain Le Gall开发的非常漂亮的构建系统。他在一堆他的OCaml项目中使用它,我也是。

答案 6 :(得分:0)

我还会为Ocaml添加另一个Makefile,我将其用于我的项目。

Makefile和示例用法可用on the Ocaml website