【问题标题】:Error: Unbound module Unix in Ocaml错误:Ocaml 中的未绑定模块 Unix
【发布时间】:2012-11-21 13:28:42
【问题描述】:

两天前我开始使用 Ocaml 进行编程,我已经完成了基本的东西,我想开始尝试创建进程。

在我正在使用的书中告诉我使用 Unix 模块,到目前为止一切都很好...... 但是当我尝试运行打印时间的简单代码时出现此错误:

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


Printf.printf "Today is day %d of the current year.\n" t.tm_yday ;;

我得到这个错误:

Error: Unbound module Unix

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

我知道这可能是一个非常愚蠢的问题,但没有这个我就无法继续下去。 缺少图书馆吗?

如果我在顶层运行,它会显示#load is and unbound value also

感谢您的宝贵时间!

编辑:

我用链接的“unix.cma”重新编译它,得到了同样的错误: Error: Unbound module Unix

可能是图书馆问题?

我做了 ocamlc -where 一切似乎都很好,这意味着所有常用库都在 PATH 中,包括 unix.cma

已解决

这都是由于 Ocaml 安装错误造成的。谢谢杰弗里斯科菲尔德

【问题讨论】:

    标签: unix process module ocaml


    【解决方案1】:

    它适用于我。这是一个顶级会话(Mac OS X 10.8.2):

    $ ocaml
            OCaml version 4.00.0
    
    # #load "unix.cma";;
    # open Unix;;
    # let t = Unix.localtime (Unix.time ());;
    val t : Unix.tm =
      {tm_sec = 39; tm_min = 27; tm_hour = 16; tm_mday = 3; tm_mon = 11;
       tm_year = 112; tm_wday = 1; tm_yday = 337; tm_isdst = false}
    # Printf.printf "Today is day %d of the current year.\n" t.tm_yday;;
    Today is day 337 of the current year.
    - : unit = ()
    # 
    

    这是与编译器的会话:

    $ 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。如果你去寻找,也许你会发现一些明显错误的东西。 (PS如果你没有尝试过,复制/粘贴我所做的看看它是否有效会很有趣。OCaml版本号对于这个测试并不重要。)
    • 等一下,我在你回答后再次尝试编译它,我再次收到错误:Unbound module Unix。但这一次,我链接了 unix.cma。所以我想我一定有错误的文件路径?我该如何检查?
    • 我建议您编辑您的问题以添加一个示例会话,该会话以您描述的方式失败。这可能有助于确定问题。
    • 好的,所以我检查了库的路径,unix.cma 在那里(一切似乎都很好)
    猜你喜欢
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 2016-01-16
    • 2013-08-28
    • 2012-09-18
    • 1970-01-01
    相关资源
    最近更新 更多