编译 ocaml 在 opam 库中找不到模块,Js.ml in js_from_ocaml
Compiling ocaml can't find module in opam library, Js.ml in js_from_ocaml
正在尝试将 ocaml 编译成 javascript。
我放在 https://gist.github.com/larsr/6b3cd6f62d54d56e3f9a 中的一些 OCaml 代码同时使用了 menhir
解析器和 js_of_ocaml
库。我用 opam
.
安装了它们
代码来自http://toss.sourceforge.net/ocaml.html。
它是一个词法分析器和一个解析器以及一个调用它们的主程序。
目标是从 ocaml 代码生成一个 javascript 程序,并从网页中 运行 它。
我能够仅使用 menhir
和回购中 Makefile 中的 make
来编译第一个主程序,这
ocamlbuild -use-menhir -menhir "menhir --external-tokens Lexer" Main.native
我可以编译一个只使用 js_of_ocaml
和 make Formula.js
的程序
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
。代码似乎在我主目录的 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
正在尝试将 ocaml 编译成 javascript。
我放在 https://gist.github.com/larsr/6b3cd6f62d54d56e3f9a 中的一些 OCaml 代码同时使用了 menhir
解析器和 js_of_ocaml
库。我用 opam
.
代码来自http://toss.sourceforge.net/ocaml.html。 它是一个词法分析器和一个解析器以及一个调用它们的主程序。 目标是从 ocaml 代码生成一个 javascript 程序,并从网页中 运行 它。
我能够仅使用 menhir
和回购中 Makefile 中的 make
来编译第一个主程序,这
ocamlbuild -use-menhir -menhir "menhir --external-tokens Lexer" Main.native
我可以编译一个只使用 js_of_ocaml
和 make Formula.js
的程序
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
。代码似乎在我主目录的 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