如何将 -thread 添加到 _oasis 以使用 Core 进行编译

How to add -thread to _oasis to compile with Core

我一直在使用 oasis 使用一些外部包来构建我的项目。现在我也想使用 Jane Street 的核心包。但是,为了使用 Core 进行编译,您必须将 -thread 标志传递给 ocamlfind,例如像这样:

ocamlfind ocamlc -linkpkg -thread -package core foo.ml -o foo

如何告诉 oasis 添加 -thread 标志?现在,我的 _oasis 文件包含如下内容:

Executable "foo"
  BuildDepends: core,batteries,bar
  Path: src
  MainIs: foo.ml
  CompiledObject: best

禁止从同一项目中收集我自己的实用程序。当我 运行 oasis setupmake 时,我得到这个错误:

ocamlfind: Error from package `threads': Missing -thread or -vmthread switch

我查看了 Oasis 手册,common fields for all sections of the _oasis file, nor the fields that are specific to the Excutable section 似乎都不适合为 ocamlfind 添加命令行标志。

我认为 可能是相关的,但是当我尝试添加它建议的额外键时,-thread 作为 XOCamlbuildExtraArgs 的值,我得到一个错误:

E: Field XOCamlbuildExtraArgs is not defined in schema Executable

您需要将以下行添加到您的 _tags 文件中:

<**/*>: thread

OASIS_STARTOASIS_STOP分隔符之间会有一堆东西,不要在它们之间添加任何东西,而是在之前或之后。