Как добавить -thread в _oasis для компиляции с Core

Я использую oasis построить свой проект, используя несколько внешних пакетов. Теперь я также хочу использовать пакет Core 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 setup а также makeЯ получаю эту ошибку:

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

Я посмотрел руководство Oasis, и ни общие поля для всех разделов файла _oasis, ни поля, относящиеся к разделу Excutable, не подходят для добавления флага командной строки для ocamlfind,

Я думал, что этот ответ может быть актуальным, но когда я попытался добавить дополнительные ключи, которые он предложил, с -thread в качестве значения для XOCamlbuildExtraArgsЯ получил ошибку:

E: Field XOCamlbuildExtraArgs is not defined in schema Executable

1 ответ

Решение

Вам нужно добавить следующую строку в ваш файл _tags:

<**/*>: thread

Там будет куча вещей между OASIS_START а также OASIS_STOP разделители, не добавляйте между ними ничего, а до или после.

Другие вопросы по тегам