模块和包Ocaml之间的差异

模块和包Ocaml之间的差异,ocaml,opam,Ocaml,Opam,我基本上是想遵循这篇文章中的答案: 我遇到了很多问题。当我试图运行一个文件时 open Lwt ;; 我得到一个错误,说它是一个未绑定的模块。我已运行以下opam指令: opam install lwt 它确实安装了正确的软件包 所以我认为问题在于模块和包之间的区别,我并不真正理解。我把这个问题看作是一个可能的答案,但我不确定这是否是我所需要的 感谢大家的支持,我是Ocaml新手,我正在尝试学习构建某些东西的细节 要使用“包”,必须明确地告诉编译器。OCaml中的未绑定模块通常意味着两

我基本上是想遵循这篇文章中的答案:

我遇到了很多问题。当我试图运行一个文件时

open Lwt ;; 
我得到一个错误,说它是一个未绑定的模块。我已运行以下opam指令:

opam install lwt
它确实安装了正确的软件包

所以我认为问题在于模块和包之间的区别,我并不真正理解。我把这个问题看作是一个可能的答案,但我不确定这是否是我所需要的

感谢大家的支持,我是Ocaml新手,我正在尝试学习构建某些东西的细节

要使用“包”,必须明确地告诉编译器。OCaml中的未绑定模块通常意味着两件事之一:您输入了模块名,或者您没有设置正确的模块搜索路径。您使用什么编译器选项

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

ocamlfind ocamlc-package lwt-c mymodule.ml

这指示编译器尝试在lwt包安装目录中查找默认模块之外的模块


如果不使用ocamlfind。。。。好的,使用ocamlfind。

编译我们程序的命令是:

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

如上所示:

您是如何编译的?。我建议使用_oasis(请参阅)为您生成合适的构建脚本。我尝试了您的建议。我检查了一下,我已经用opam安装了lwt软件包,然后运行了上面的程序,我得到了与以前相同的错误。“未找到包lwt”。如果“opam列表lwt”显示包已安装,请尝试“ocamlfind query lwt”查看其模块路径。如果ocamlfind说找不到包“lwt”,则说明您的环境配置错误。阅读OPAM文档并检查环境变量。无论如何,如果你想要更好的答案,你必须给我们更多的细节,你尝试了什么。