¿Cómo utilizar el indicador de compilador de subprocesos con ocamlbuild?
(1)
Estoy usando el async_core
Jane Street
agregando el package(async_core)
en _tags
.
Cuando uso ocamlbuild -use-ocamlfind -I src test/test_airport.native
, me da el siguiente error:
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: Error del paquete de hilos '': Missing -thread o -vmthread switch
Lo busqué en Google y aquí está lo que obtuve http://caml.inria.fr/pub/docs/manual-ocaml-4.00/manual039.html
Dice:
Los programas que utilizan subprocesos del sistema deben estar vinculados de la siguiente manera:
ocamlc -thread other options unix.cma threads.cma other files
Así que cambié mi comando ocamlbuild de esta manera:
ocamlbuild -use-ocamlfind -cflag -thread -I src test/test_airport.native
Pero el error sigue siendo el mismo. También el comando real que generó ocamlbuild sigue siendo el mismo sin el -thread
.
¿Cómo puedo lidiar con esto?
Lo que desea saber es si hay una etiqueta ocamlbuild (característica ~) para agregar el argumento -thread
a las líneas de comando relevantes, en lugar de -cflag
con -cflag
de forma insatisfactoria. Como se explica en esta publicación de blog , debe usar la opción -documentation
de 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"
Entonces, la respuesta es: agregue -tag thread
a su línea de invocación de ocamlbuild, o simplemente thread
en el lugar relevante en _tags
.