我对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二进制文件。
最佳答案
Google今天下来了吗? http://projects.camlcity.org/projects/findlib.html
没有预编译的二进制文件,但是在cygwin上,它可以立即进行编译。