模块和包Ocaml之间的区别

时间:2013-05-22 01:07:13

标签: ocaml opam

我基本上试图按照这篇文章中的stackoverflow回答:

What is the best module for HttpRequest in OCaml

我正在遇到问题。当我尝试使用

运行单个文件时
open Lwt ;; 

我收到并且错误地说它是一个未绑定的模块。我运行了以下opam指令:

opam install lwt

它确实安装了正确的

所以我认为问题是模块和包之间的区别,我真的不明白。我把这个问题视为一个可能的答案,但我不确定这是否是我所需要的。

Unbound modules in OCaml

感谢输入的人,我是Ocaml的新手,我正在努力学习构建东西的细节。

2 个答案:

答案 0 :(得分:5)

要使用“包”,必须明确告诉编译器。 OCaml中的未绑定模块通常表示以下两种情况之一:您输入了模块名称的错误,或者您未能设置正确的模块搜索路径。你使用什么编译器选项?

如果使用ocamlfind,编译应如下所示:

ocamlfind ocamlc -package lwt -c mymodule.ml

这指示编译器尝试在lwt软件包安装目录中查找模块,以及默认模块。

如果你不使用ocamlfind ....好吧,使用ocamlfind。

答案 1 :(得分:0)

编译程序的命令是:

ocamlfind ocamlopt -o progprog -linkpkg \
  -package lablGL,sdl,sdl.sdlimage,sdl.sdlmixer,sdl.sdlttf \
  module1.ml module2.ml

如上所示:https://ocaml.org/learn/tutorials/compiling_ocaml_projects.html