我一直在使用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 setup
和make
时,我收到此错误:
ocamlfind: Error from package `threads': Missing -thread or -vmthread switch
我查看了Oasis手册,_oasis文件的所有部分common fields和fields that are specific to the Excutable section似乎都不适合为ocamlfind
添加命令行标记。
我认为this answer可能是相关的,但当我尝试添加其建议的额外密钥时,-thread
作为XOCamlbuildExtraArgs
的值,我收到了错误:
E: Field XOCamlbuildExtraArgs is not defined in schema Executable
答案 0 :(得分:3)
您需要将以下行添加到_tags文件中:
<**/*>: thread
OASIS_START
和OASIS_STOP
分隔符之间会有很多内容,不要在它们之间添加任何内容,而是在之前或之后添加。