将ocamlfind与ocaml解释器一起使用,无需编译

将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并附加一些标志,使其找到包?您可以在文件的开头放一些顶级指令,用于查找和加载所需的模块。例如,

我有一个文件main.ml,它使用了一些使命令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