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

时间:2017-06-19 17:27:39

标签: ocaml oasis ocaml-core

我一直在使用oasis使用一些外部包来构建我的项目。现在我也想使用Jane Street的Core包。但是,为了使用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手册,_oasis文件的所有部分common fieldsfields that are specific to the Excutable section似乎都不适合为ocamlfind添加命令行标记。

我认为this answer可能是相关的,但当我尝试添加其建议的额外密钥时,-thread作为XOCamlbuildExtraArgs的值,我收到了错误:

E: Field XOCamlbuildExtraArgs is not defined in schema Executable

1 个答案:

答案 0 :(得分:3)

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

<**/*>: thread

OASIS_STARTOASIS_STOP分隔符之间会有很多内容,不要在它们之间添加任何内容,而是在之前或之后添加。