【发布时间】:2010-12-01 19:07:21
【问题描述】:
我正在玩弄 OCaml。我想知道的第一件事是构建一个 OCaml 项目。现在,我只是想要一些愚蠢的简单的东西,因为我只是在学习。谁能指出一个构建系统以及使用该构建系统的“hello world”类型示例?
【问题讨论】:
标签: compiler-construction ocaml build-system ocamlbuild
我正在玩弄 OCaml。我想知道的第一件事是构建一个 OCaml 项目。现在,我只是想要一些愚蠢的简单的东西,因为我只是在学习。谁能指出一个构建系统以及使用该构建系统的“hello world”类型示例?
【问题讨论】:
标签: compiler-construction ocaml build-system ocamlbuild
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 和类似工具。更多信息可以找到here。 This 是一个关于使用 gmake 的页面。
This 是一个不错的“程序员的第一个 Ocaml”页面。
Here 是我在大学时参加的 Ocaml 课程的讲座页面。不过,不要试图向 Gunter 教授寻求任何提示,如果没记错的话,她是一个邪恶的巨魔。
【讨论】:
还有ocamlbuild。对于没有外部依赖的简单项目,就这么简单
ocamlbuild prog.native
【讨论】:
看看 Markus Mottle 的 ocaml-make。该项目包括OCamlMakefile。将其复制到您的源目录并创建一个Makefile,例如:
SOURCES = hello.ml
RESULT = hello
-include OCamlMakefile
【讨论】:
您可能正在寻找ide。看看Know of an OCAML IDE?。
http://www.ocaml-tutorial.org/compiling_ocaml_projects 解释编译基础。在该页面的底部有一个名为 Automated build systems 的部分,以及指向主题 Compiling with GNU make 和 Compiling with Omake 的链接,都包括示例。
【讨论】:
您可能知道这一点,但万一您不知道,OCaml 包含一个 REPL,您可以使用该 REPL 进行交互编码,而无需编译。当您第一次学习时,它会非常有用。
【讨论】:
一个崭露头角的项目是OASIS,这是一个非常漂亮的构建系统,由 Sylvain Le Gall 开发。他在他的一堆 OCaml 项目中使用它,我也是。
【讨论】:
我还会为 Ocaml 添加另一个 Makefile,用于我的项目。
Makefile 和示例用法可用on the Ocaml website。
【讨论】: