编译ocaml can';在opam库中找不到模块,在Js_中从_ocaml找到Js.ml 正在尝试将ocaml编译为javascript。

编译ocaml can';在opam库中找不到模块,在Js_中从_ocaml找到Js.ml 正在尝试将ocaml编译为javascript。,ocaml,js-of-ocaml,Ocaml,Js Of Ocaml,我放入的一些OCaml代码使用了menhir解析器和js\u of_OCaml库。我用opam安装了它们 代码来自。 它是一个lexer、一个解析器和一个调用它们的主程序。 目标是从ocaml代码生成javascript程序,并在网页中运行它 我能够仅使用repo中的Makefile中的menhir和make来编译第一个主程序,这是 ocamlbuild -use-menhir -menhir "menhir --external-tokens Lexer" Main.native ocaml

我放入的一些OCaml代码使用了
menhir
解析器和
js\u of_OCaml
库。我用
opam
安装了它们

代码来自。 它是一个lexer、一个解析器和一个调用它们的主程序。 目标是从ocaml代码生成javascript程序,并在网页中运行它

我能够仅使用repo中的Makefile中的
menhir
make
来编译第一个主程序,这是

ocamlbuild -use-menhir -menhir "menhir --external-tokens Lexer" Main.native
ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax \
      -syntax camlp4o -linkpkg -o Formula.byte Formula.ml
js_of_ocaml Formula.byte
我可以编译一个程序,只使用ocaml的
js\u,使用
makeformula.js
,这样做

ocamlbuild -use-menhir -menhir "menhir --external-tokens Lexer" Main.native
ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax \
      -syntax camlp4o -linkpkg -o Formula.byte Formula.ml
js_of_ocaml Formula.byte
我的问题是,现在我无法使用
ocamlfind
构建
JsClient.js

make JsClient.js
所以我不能为“JsClient.ml”生成javascript代码。我得到的错误是编译器找不到由
JsClient
使用的模块
Js
。代码似乎在我的home dir中的opam库中,但我无法获得使用它的
ocamlfind
的正确参数


如何将
JsClient.ml
编译成
JsClient.js

编译
JsClient.ml
文件的规则不好

JsClient.byte:
    ocamlbuild -use-menhir -menhir "menhir --external-tokens Lexer" 
正如您所说,此文件使用模块
Js
,因此您需要使用与文件
Formula.ml
相同的方式进行编译:

ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax \
      -syntax camlp4o -linkpkg -o JsClient.byte JsClient.ml
js_of_ocaml JSClient.byte

最后我写了一个新的Makefile,也许有人可以看看它。