unix - 错误: Unbound module Unix in 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 ;;

我收到此错误:

错误:未绑定(bind)模块 Unix

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

我知道这可能是一个非常菜鸟的问题,但如果没有这个我就无法继续下去。 缺少库吗?

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

感谢您的宝贵时间!

编辑:

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

可能是库问题?

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

已解决

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

最佳答案

它在这里对我有用。这是一个顶级 session (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 = ()
# 

这是与编译器的 session :

$ 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 安装未完成。您使用什么类型的系统?

关于unix - 错误: Unbound module Unix in Ocaml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13694140/

相关文章:

c - 这个多线程程序是否比非多线程程序执行得更好?

Java 进程在启动外部进程后不会终止

python - 杀死除当前进程之外的所有 python 主进程

Python 模块 : how to keep private symbol table private?

python - 从子模块上的模块调用函数

python - Python 的 MySQL 模块

c++ - 使用 System V 信号量创建聚集/屏障函数

c - 父进程如何找到导致其子进程死亡的进程的pid?

c - 首次输出到 stdout 后特定子进程的用户 CPU 时间

Java:有没有办法运行系统命令并在执行期间打印输出?