Как добавить -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
разделители, не добавляйте между ними ничего, а до или после.