2011-09-30 91 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