【问题标题】:Launch interactive OCaml session with library (Yojson) available使用可用的库 (Yojson) 启动交互式 OCaml 会话
【发布时间】:2011-11-11 02:34:13
【问题描述】:

我已经通过 GODI 为 OCaml 安装了 Yojson 库: http://martin.jambon.free.fr/yojson.html

我想启动一个交互式 ocaml 会话(即通过 ocaml 命令)并执行来自 Yojson 库的函数,例如

Yojson.Safe.from_string;;

我该怎么做?上面的命令给出了“错误:未绑定的模块 Yojson”。我已经研究了如何通过 ocamlc 编译并使用 Yojson,但我想启动一个交互式会话。

我知道这似乎是一个可怕的初学者问题,但 Yojson 没有样本和最少的说明,所以我真的很难过。我尝试了“#load”和编译器开关的各种组合,但我被卡住了。

【问题讨论】:

  • 不要忘记查看 atdgen,它接受类型定义并为您生成样板代码。

标签: json ocaml


【解决方案1】:

您使用的工具名为findlib。它包含在基础 GODI 安装中。 findlib 附带的工具使您可以轻松地针对大多数 OCaml 库进行编译,并从顶级会话 (ocaml) 中使用这些库。 findlib 文档相当全面,但这里有一个快速入门的摘要。

从顶级会话中开始使用 findlib:

#use "topfind";;

这将显示一条简短的使用消息。然后你可以输入:

#list;;

这将显示所有可用软件包的列表。 Yojson 很可能就是其中之一。最后:

#require "yojson";;

其中 yojson 被 #list;; 所示的相应条目替换。 Yojson 的模块此时应该可以使用了。

【讨论】:

  • 并使用 ocamlfind 进行编译。
  • 谢谢!如果我也想编译文件,这是最好的方法吗?我很困惑,因为我之前没有在其他 .ml 脚本中看到“topfind”。
  • 正如 Martin Jambon 所说,ocamlfind 是编译的方式。不过,您不会使用相同的 #use/#require 行 - 这些是特定于顶层环境的。
猜你喜欢
  • 1970-01-01
  • 2016-03-28
  • 1970-01-01
  • 2017-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-03
相关资源
最近更新 更多