错误:未绑定Ocaml中的Unix模块

错误:未绑定Ocaml中的Unix模块,unix,process,module,ocaml,Unix,Process,Module,Ocaml,我两天前开始使用Ocaml编程,我已经完成了基本的工作,我想开始尝试创建流程 在这本书中,我正在使用告诉我如何使用Unix模块,到目前为止还不错。。。 但是,当我尝试运行一个简单的代码来打印时间时,我遇到了这个错误: open Unix ;; let t = Unix.localtime (Unix.time ());; Printf.printf "Today is day %d of the current year.\n" t.tm_yday ;; 我得到了这个错误: 错误:未绑定模

我两天前开始使用Ocaml编程,我已经完成了基本的工作,我想开始尝试创建流程

在这本书中,我正在使用告诉我如何使用Unix模块,到目前为止还不错。。。 但是,当我尝试运行一个简单的代码来打印时间时,我遇到了这个错误:

open Unix ;;
let t = Unix.localtime (Unix.time ());;


Printf.printf "Today is day %d of the current year.\n" t.tm_yday ;;
我得到了这个错误:

错误:未绑定模块Unix

我搜索了这个问题的答案,我发现我应该用“unix.cma”链接来编译我的代码,之后我就可以编译了,但代码什么也没做

我知道这可能是一个非常不切实际的问题,但我不能没有这个继续下去。 图书馆不见了吗

如果我在顶层运行,它会显示
#加载为,未绑定值也为

谢谢你抽出时间

编辑:

我用链接的“unix.cma”重新编译它,得到了相同的错误:
错误:未绑定模块Unix

可能是图书馆的问题

我使用了ocamlc-where,看起来一切都很好,这意味着所有常用的库都在这个路径中,包括unix.cma

已解决


这一切都是由于Ocaml安装不好造成的。谢谢Jeffrey Scofield它在这里对我有用。下面是一个顶级会话(Mac OS X 10.8.2):

以下是与编译器的会话:

$ cat doy.ml
open Unix

let t = Unix.localtime (Unix.time ());;

Printf.printf "Today is day %d of the current year.\n" t.tm_yday
$ ocamlc -o doy unix.cma doy.ml
$ doy
Today is day 337 of the current year.

如果这些对您不起作用,我唯一的理论是您的OCaml安装没有完成。您使用的是哪种类型的系统?

我想应该是那种类型的系统是的。。我使用的是Fedora 17和Ocaml版本3.12.1(我以为我有版本4.0!),我没有使用Fedora,但是你可以问Ocaml它认为库应该在哪里:
ocamlc-where
。如果你去寻找,也许你会发现一些明显的错误。(请注意,如果您还没有尝试过,复制/粘贴我所做的,看看它是否有效,这将是一件有趣的事情。OCaml版本号对于此测试并不重要。)等等,在您回答之后,我再次尝试编译它,但我再次遇到错误:Unbound module Unix。但这一次,我将unix.cma链接起来。所以我想我一定是走错路径了?我该如何检查呢?我建议您编辑您的问题,添加一个以您描述的方式失败的示例会话。它可能有助于识别问题。好的,我检查了库的路径,unix.cma就在那里(一切似乎都很好)
$ cat doy.ml
open Unix

let t = Unix.localtime (Unix.time ());;

Printf.printf "Today is day %d of the current year.\n" t.tm_yday
$ ocamlc -o doy unix.cma doy.ml
$ doy
Today is day 337 of the current year.