【问题标题】:ocamlfind, where to find/how to build?ocamlfind,在哪里可以找到/如何构建?
【发布时间】:2011-11-28 12:28:18
【问题描述】:

我对 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 二进制文件。

【问题讨论】:

    标签: ocaml ocamlfind


    【解决方案1】:

    今天 google 下线了吗? http://projects.camlcity.org/projects/findlib.html

    没有预编译的二进制文件,但在 cygwin 上可以直接编译。

    【讨论】:

    • 开箱即用有点相对,它依赖于我没有的 ncurses-devel。但是,是的,当这个问题解决后,它编译得很好。
    • 诅咒?有一些 tui 向导,但它是可选的。我肯定在新的 cygwin 和 mingw 安装上编译了它,没有任何额外的步骤。
    猜你喜欢
    • 2019-10-10
    • 2013-05-01
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 2011-05-09
    • 2017-08-23
    相关资源
    最近更新 更多