【问题标题】:Telling ocamlbuild to use Core告诉 ocamlbuild 使用 Core
【发布时间】:2014-11-20 06:04:05
【问题描述】:

在我的项目中,我有一个使用 Core.Std 东西的文件,所以我已经运行了

opam install core

并添加

open Core.Std

在我的文件中。

当我跑步时

ocamlbuild myprogram.native

上面写着:

Error: Unbound module Core

指向与上面的 open 语句一致。

所以,我试试这个:

ocamlbuild -use-ocamlfind -pkgs core.std myprogram.native

并收到以下消息:

ocamlfind: Package `core.std' not found

所以我想也许我也需要运行 opam install core.std,但显然 opam 没有这样的事情。我也试过“打开 Core.Std;;”在 ocaml repl 中,但这也不起作用。有什么想法吗?

【问题讨论】:

  • 您确实应该将帮助您的一个答案标记为正确,作为对回答者的奖励。

标签: ocaml ocamlbuild


【解决方案1】:

你可以使用这个库通常附带的corebuild,或者你可以试试这个:

 ocamlbuild -use-ocamlfind -pkg core

附:使用ocamlfind list 命令查看可用包列表。

附言除了corebuild,他们通常会发布coretop,这是一个允许您运行启用核心的顶级脚本。它在引擎盖下使用utop,因此在进行实验之前,请确保您已使用opam install utop 安装它(如果您使用的是opam)。

【讨论】:

  • 你如何从 myocamlbuild.ml 提供这个标志?
  • “这个”是哪一个? -use-ocamlfind-pkg core?
  • 后者; -pkg core.
  • 通常他们将其添加到_tags 文件中,myocamlbuild.ml 用于根据_tags 确定一组正确的标志。根据您的myocamlbuld.ml,您需要添加<**/*> : pkg_core<**/*>: package(core)。编写自己的myocamlbuild 插件是一种高级魔法,通常不需要。即使手动填写_tags 文件也很不寻常。所以,也许你看错了方向。
  • 哦,我明白了。谢谢。 :)
【解决方案2】:

从您的 ocamlbuild cmd 中删除 .std

【讨论】:

  • 谢谢!现在我收到一条不同的错误消息:“ocamlfind:来自包‘线程’的错误:缺少 -thread 或 -vmthread 开关命令退出,代码为 2。”和 -thread 或 -vmthread 不是 ocamlbuild 接受的开关。
  • vmthread 和 thread 是标签。你也想要,-tag[s] thread
猜你喜欢
  • 2014-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-07
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 2021-06-08
相关资源
最近更新 更多