将ocamlfind与ocaml解释器一起使用,无需编译
我有一个文件main.ml,它使用了一些使命令ocaml main.ml失败的包,并报告此错误:将ocamlfind与ocaml解释器一起使用,无需编译,ocaml,ocamlfind,Ocaml,Ocamlfind,我有一个文件main.ml,它使用了一些使命令ocaml main.ml失败的包,并报告此错误: Error: Unbound module X 到目前为止,我找到的唯一解决方案是运行: ocamlbuild main.native -use-ocamlfind -package X ./main.native 但这会编译文件。有没有一种方法可以只运行常规的ocaml解释器ocaml main.ml并附加一些标志,使其找到包?您可以在文件的开头放一些顶级指令,用于查找和加载所需的模块。例如,
Error: Unbound module X
到目前为止,我找到的唯一解决方案是运行:
ocamlbuild main.native -use-ocamlfind -package X
./main.native
但这会编译文件。有没有一种方法可以只运行常规的ocaml解释器ocaml main.ml并附加一些标志,使其找到包?您可以在文件的开头放一些顶级指令,用于查找和加载所需的模块。例如,当我想在脚本中使用核心库时,我插入:
#use "topfind";;
#thread;;
#require "core";;
open Core.Std
(* Code of my script *)
要使用topfind包,必须安装ocamlfind opam install ocamlfind,您可以在文件开头添加一些顶级指令,用于查找和加载所需的模块。例如,当我想在脚本中使用核心库时,我插入:
#use "topfind";;
#thread;;
#require "core";;
open Core.Std
(* Code of my script *)
要使用topfind包,必须安装ocamlfind opam install ocamlfind最简单的方法可能是使用topfind并在文件顶部添加require core。如果要避免在文件中添加顶级指令,可以使用ocamlfind query-i-format-r计算所需的include目录:
ocaml $(ocamlfind query -i-format -r core) main.ml
最简单的方法可能是使用topfind并在文件顶部添加requirecore。如果要避免在文件中添加顶级指令,可以使用ocamlfind query-i-format-r计算所需的include目录:
ocaml $(ocamlfind query -i-format -r core) main.ml
您还可以查询到ocamlfind的包路径:
ocamlfind query package_X
这将返回包的路径:/path\u到/packageX
然后:
ocaml main.ml -I /path_to/packageX
您还可以查询到ocamlfind的包路径:
ocamlfind query package_X
这将返回包的路径:/path\u到/packageX
然后:
ocaml main.ml -I /path_to/packageX