Как использовать флаг компилятора -thread с ocamlbuild?

Я используюJane Streetasync_core добавляяpackage(async_core) в ._tags

Когда я используюocamlbuild -use-ocamlfind -I src test/test_airport.native, это дает мне следующую ошибку:

camlfind ocamlopt -linkpkg -package async_core -package unix -package netclient -package mongo -package xml-light src / airport.cmx test / test_airport.cmx -o test / test_airport.native ocamlfind: ошибка из пакета `threads ': Отсутствует ключ -thread или -vmthread

Я погуглил это и вот что я получилhttp://caml.inria.fr/pub/docs/manual-ocaml-4.00/manual039.html

Это говорит:

Программы, использующие системные потоки, должны быть связаны следующим образом:

    ocamlc -thread other options unix.cma threads.cma other files

Поэтому я изменил свою команду ocamlbuild следующим образом:

ocamlbuild -use-ocamlfind -cflag -thread -I src test/test_airport.native

Но ошибка остается прежней. также фактическая команда, сгенерированная ocamlbuild, остается без изменений.-thread

Как я могу справиться с этим?

 Jackson Tale15 мая 2013 г., 01:36
Кто ненавидит меня так сильно, что отрицает каждый мой вопрос?

Ответы на вопрос(1)

Решение Вопроса

что вы хотите знать, есть ли тег ocamlbuild (~ функция), чтобы добавить-thread аргумент в соответствующие командные строки, вместо того, чтобы взломать его-cflag неудовлетворительными способами. Как объяснилв этом блоге, вы должны использовать-documentation опция ocamlbuild:

% ocamlbuild -documentation | grep thread
flag {. byte, link, ocaml, program, thread .} "threads.cma -thread"
flag {. link, native, ocaml, program, thread .} "threads.cmxa -thread"
flag {. doc, ocaml, thread .} "-I +threads"
flag {. compile, ocaml, thread .} "-thread"

Итак, ответ: добавить-tag thread на вашу линию вызова ocamlbuild, или простоthread в соответствующем месте в._tags

 Jackson Tale14 мая 2013 г., 23:39
Благодарю. Я думаю, что я нея понял тег вещи в ocamlbuild
 rgrinberg14 мая 2013 г., 23:33
В очень маловероятном случае, что гашеОтвет не был достаточно ясен, вот файл _tags, который janestreet использовал в одном из своих выступлений:bitbucket.org/yminsky/core-hello-world/src/...
 Jason Yeo21 авг. 2013 г., 08:37
@JacksonTale, другими словами, вы должны создать_tags файл в каталоге, где вы компилируете свой проект.ocamlbuild будет искать флаги в_tags файл и вызовите необходимую команду с соответствующими флагами для файлов, которые вымы указали в_tags файл.

Ваш ответ на вопрос