2011-09-30 26 views
4

我几乎不知道ocaml,但我想安装Coccinelle(在cygwin上),它依赖于二进制文件ocamlfindocamlfind,在哪里可以找到/如何构建?

但是,从http://caml.inria.fr/download.en.html安装ocaml-3.11.0-win-mgw.exe或ocaml-3.11.0-win-msvc.exe ,没有这样的二进制文件。事实上,安装目录中没有单个文件包含对字符串“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二进制文件。

回答

3

谷歌今天倒下了吗? http://projects.camlcity.org/projects/findlib.html

没有预编译的二进制文件,但是在cygwin上,它编译的很好。

+3

开箱即使有点相对,它有一个依赖于我没有的ncurses-devel。但是,是的,当它解决了,它编译好了。 – hlovdal

+1

ncurses?有一些tui向导,但它是可选的afair。我明确地将它编译为新的cygwin和mingw,而不需要任何额外的步骤。 – ygrek