ocamlfind,在哪里找到/如何构建?
我对 ocaml 几乎一无所知,但我想安装 Coccinelle (在 cygwin 上),它依赖于二进制ocamlfind
。
但是,安装 ocaml-3.11.0-win-mgw.exe 或 ocaml-3.11.0-win-msvc.exe 从http://caml.inria.fr/download.en.html,有没有这样的二进制文件。事实上,安装目录中没有一个文件包含对字符串“ocamlfind”的任何引用。
下载源代码(ocaml-3.12.1)后,grep 只找到以下引用:
./Changes:- PR#5165: ocamlbuild does not pass '-thread' option to ocamlfind
./Changes:- PR#5217: ocamlfind plugin should add '-linkpkg' for toplevel
./ocamlbuild/command.ml: else None (* Sh"ocamlfind ocamlc" for example will not be digested. *)
./ocamlbuild/findlib.ml: | Cannot_run_ocamlfind
./ocamlbuild/findlib.ml: | Cannot_run_ocamlfind ->
./ocamlbuild/findlib.ml:let ocamlfind = "ocamlfind"
./ocamlbuild/findlib.ml: run_and_parse Lexers.ocamlfind_query
./ocamlbuild/findlib.ml: "%s query -l -predicates byte %s" ocamlfind name
./ocamlbuild/findlib.ml: "%s query -a-format -predicates native %s" ocamlfind name
./ocamlbuild/findlib.ml: run_and_parse Lexers.blank_sep_strings "%s query -r -p-format %s" ocamlfind name
./ocamlbuild/findlib.ml: (* TODO: Improve to differenciate whether ocamlfind cannot be
./ocamlbuild/findlib.ml: error Cannot_run_ocamlfind
./ocamlbuild/findlib.ml: run_and_parse Lexers.blank_sep_strings "%s list | cut -d' ' -f1" ocamlfind
./ocamlbuild/findlib.ml:make another ocamlfind query such as:
./ocamlbuild/findlib.ml: ocamlfind query -p-format -r package1 package2 ... *)
./ocamlbuild/lexers.mli:val ocamlfind_query : Lexing.lexbuf ->
./ocamlbuild/lexers.mll:and ocamlfind_query = parse
./ocamlbuild/lexers.mll: | _ { raise (Error "Bad ocamlfind query") }
./ocamlbuild/manual/manual.tex:\texttt{ocamlfind}). Here is the list of relevant options:
./ocamlbuild/ocaml_specific.ml: if !Options.use_ocamlfind then begin
./ocamlbuild/ocaml_specific.ml: (* Note: if there is no -pkg option, ocamlfind won't be called *)
./ocamlbuild/ocaml_specific.ml:if not !Options.use_ocamlfind then begin
./ocamlbuild/options.ml:let use_ocamlfind = ref false
./ocamlbuild/options.ml: "ocamlyacc"; "menhir"; "ocamllex"; "ocamlmklib"; "ocamlmktop"; "ocamlfind"]
./ocamlbuild/options.ml:let ocamlfind x = S[V"OCAMLFIND"; x]
./ocamlbuild/options.ml: "-use-ocamlfind", Set use_ocamlfind, " Use ocamlfind to call ocaml compilers";
./ocamlbuild/options.ml: if !use_ocamlfind then begin
./ocamlbuild/options.ml: ocamlc := ocamlfind & A"ocamlc";
./ocamlbuild/options.ml: ocamlopt := ocamlfind & A"ocamlopt";
./ocamlbuild/options.ml: ocamldep := ocamlfind & A"ocamldep";
./ocamlbuild/options.ml: ocamldoc := ocamlfind & A"ocamldoc";
./ocamlbuild/options.ml: ocamlmktop := ocamlfind & A"ocamlmktop";
./ocamlbuild/signatures.mli: val use_ocamlfind : bool ref
./ocamlbuild/signatures.mli: | Cannot_run_ocamlfind
./ocamlbuild/signatures.mli: (** Transitive closure, as returned by [ocamlfind query -r]. *)
并且这些都不是安装此类二进制文件的任何引用。所以我有点迷失了如何继续。返回到旧版本的 ocaml?
顺便说一句,本机 ocaml cygwin 软件包也不包含任何 ocamlfind 二进制文件。
I know next to nothing about ocaml, but I want to install Coccinelle (on cygwin), which has a dependency to the binary ocamlfind
.
However, installing either ocaml-3.11.0-win-mgw.exe or ocaml-3.11.0-win-msvc.exe
from http://caml.inria.fr/download.en.html, there are no such binary. In fact not a single file in the installed directory contains any reference to the string "ocamlfind".
And downloading the source code (ocaml-3.12.1), grep only finds the following references:
./Changes:- PR#5165: ocamlbuild does not pass '-thread' option to ocamlfind
./Changes:- PR#5217: ocamlfind plugin should add '-linkpkg' for toplevel
./ocamlbuild/command.ml: else None (* Sh"ocamlfind ocamlc" for example will not be digested. *)
./ocamlbuild/findlib.ml: | Cannot_run_ocamlfind
./ocamlbuild/findlib.ml: | Cannot_run_ocamlfind ->
./ocamlbuild/findlib.ml:let ocamlfind = "ocamlfind"
./ocamlbuild/findlib.ml: run_and_parse Lexers.ocamlfind_query
./ocamlbuild/findlib.ml: "%s query -l -predicates byte %s" ocamlfind name
./ocamlbuild/findlib.ml: "%s query -a-format -predicates native %s" ocamlfind name
./ocamlbuild/findlib.ml: run_and_parse Lexers.blank_sep_strings "%s query -r -p-format %s" ocamlfind name
./ocamlbuild/findlib.ml: (* TODO: Improve to differenciate whether ocamlfind cannot be
./ocamlbuild/findlib.ml: error Cannot_run_ocamlfind
./ocamlbuild/findlib.ml: run_and_parse Lexers.blank_sep_strings "%s list | cut -d' ' -f1" ocamlfind
./ocamlbuild/findlib.ml:make another ocamlfind query such as:
./ocamlbuild/findlib.ml: ocamlfind query -p-format -r package1 package2 ... *)
./ocamlbuild/lexers.mli:val ocamlfind_query : Lexing.lexbuf ->
./ocamlbuild/lexers.mll:and ocamlfind_query = parse
./ocamlbuild/lexers.mll: | _ { raise (Error "Bad ocamlfind query") }
./ocamlbuild/manual/manual.tex:\texttt{ocamlfind}). Here is the list of relevant options:
./ocamlbuild/ocaml_specific.ml: if !Options.use_ocamlfind then begin
./ocamlbuild/ocaml_specific.ml: (* Note: if there is no -pkg option, ocamlfind won't be called *)
./ocamlbuild/ocaml_specific.ml:if not !Options.use_ocamlfind then begin
./ocamlbuild/options.ml:let use_ocamlfind = ref false
./ocamlbuild/options.ml: "ocamlyacc"; "menhir"; "ocamllex"; "ocamlmklib"; "ocamlmktop"; "ocamlfind"]
./ocamlbuild/options.ml:let ocamlfind x = S[V"OCAMLFIND"; x]
./ocamlbuild/options.ml: "-use-ocamlfind", Set use_ocamlfind, " Use ocamlfind to call ocaml compilers";
./ocamlbuild/options.ml: if !use_ocamlfind then begin
./ocamlbuild/options.ml: ocamlc := ocamlfind & A"ocamlc";
./ocamlbuild/options.ml: ocamlopt := ocamlfind & A"ocamlopt";
./ocamlbuild/options.ml: ocamldep := ocamlfind & A"ocamldep";
./ocamlbuild/options.ml: ocamldoc := ocamlfind & A"ocamldoc";
./ocamlbuild/options.ml: ocamlmktop := ocamlfind & A"ocamlmktop";
./ocamlbuild/signatures.mli: val use_ocamlfind : bool ref
./ocamlbuild/signatures.mli: | Cannot_run_ocamlfind
./ocamlbuild/signatures.mli: (** Transitive closure, as returned by [ocamlfind query -r]. *)
and none of this is any references to install of such a binary. So I am sort of lost on how to proceed. Go back to older releases of ocaml?
BTW, the native ocaml cygwin packages did also not contain any ocamlfind binary.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
谷歌今天宕机了吗? http://projects.camlcity.org/projects/findlib.html
没有预编译二进制文件,但在 cygwin 上它可以开箱即用地编译良好。
Is google down today? http://projects.camlcity.org/projects/findlib.html
There is no precompiled binary, but on cygwin it compiles fine out of the box.