OCaml: Как мне скомпилировать / сделать программу с расширением .ml.x? - PullRequest
0 голосов
/ 17 марта 2019

Я скачал проект, который содержит следующие файлы:

assert.mli
assert.ml
deque.ml
deque.mli
eventloop.ml
eventloop.mli
g.ml
gctx.ml
gctx.mli
gdemo.html
gdemo.ml
gdemo.mli
g-js.ml.x
g-native.ml.x
lightbulb.html
lightbulb.ml
lightbulb.mli
Makefile
paint.html
paint.ml
paint.mli
widget.ml
widget.mli
widgetTest.ml
widgetTest.mli

Я могу скомпилировать некоторые файлы, которые не зависят от других файлов, выполнив, например,

$ ocamlc assert.mli assert.ml

,Однако eventloop.ml зависит от widget.ml, а widget.ml зависит от gctx.ml.gctx, кажется, зависит от модуля G, который я считаю графической библиотекой.Когда я заглядываю внутрь g-js.ml.x, я вижу, что это подтверждает, что этот файл импортирует фиксированную версию графической библиотеки.Тем не менее, я понятия не имею, как использовать этот файл.Я попробовал несколько предположений в терминале, но безрезультатно.Примером предположения было

$ ocamlc g-js.ml.x g.ml

Я пытался найти в Google "как скомпилировать ocaml" .ml.x "", но ничего не нашел, и я не уверен, стоит ли искать что-то ещеили если просто не так много о том, как обрабатывать эти файлы.

Я также попытался в терминале $ make -f Makefile и получил ошибку

+ ocamlfind ocamldep -package js_of_ocaml-lwt.graphics -package js_of_ocaml-lwt -package js_of_ocaml -modules gdemo.mli > gdemo.mli.depends
ocamlfind: Package `js_of_ocaml-lwt.graphics' not found
Command exited with code 2.
Compilation unsuccessful after building 1 target (0 cached) in 00:00:00.
Makefile:51: recipe for target 'gdemo.byte' failed
make: *** [gdemo.byte] Error 10 

Поиск этой ошибки, другие люди нашли ее исправленной, обновив библиотеки OPAM и особенно обновив cppo_ocamlbuild, но этоне исправить это для меня.


Редактировать: После выполнения некоторых инструкций в комментариях я получаю новое сообщение об ошибке при попытке создать Makefile:

rm -rf g.ml
cp g-js.ml.x g.ml
ocamlbuild -use-ocamlfind -pkg js_of_ocaml -pkg js_of_ocaml-lwt -pkg js_of_ocaml-lwt.graphics gdemo.byte
Failure: ocamlfind not found on path, but -no-ocamlfind not used.
Compilation unsuccessful after building 0 targets (0 cached) in 00:00:00.
Makefile:51: recipe for target 'gdemo.byte' failed
make: *** [gdemo.byte] Error 2
...