1

正常にインストールocaml-batteries-includedfindlibました。

'ocamlfind ocamlc -package batterys-cmycode.ml`を問題なく実行できます。

また、そうするとocamlfind list

$ ocamlfind list
batteries           (version: 2.0)
batteries.pa_comprehension (version: 2.0)
batteries.pa_comprehension.syntax (version: 2.0)
batteries.pa_llist  (version: 2.0)
batteries.pa_llist.syntax (version: 2.0)
batteries.pa_string (version: 2.0)
batteries.pa_string.syntax (version: 2.0)
batteries.syntax    (version: 2.0)
bigarray            (version: [distributed with Ocaml])
camlp4              (version: [distributed with Ocaml])
...

問題はusing batteriesにありocaml (toplevel)ます。

私は言われたように設定し.ocamlinitました:

#use "topfind";;

Toploop.use_silently
             Format.err_formatter (Filename.concat (Findlib.package_directory
             "batteries") "battop.ml");;

しかし、起動するocamlと、次のようになります。

$ ocaml
        OCaml version 4.00.1

Findlib has been successfully loaded. Additional directives:
  #require "package";;      to load a package
  #list;;                   to list the available packages
  #camlp4o;;                to load camlp4 (standard syntax)
  #camlp4r;;                to load camlp4 (revised syntax)
  #predicates "p,q,...";;   to set these predicates
  Topfind.reset();;         to force that packages will be reloaded
  #thread;;                 to enable threads

Exception: Fl_package_base.No_such_package ("batteries", "").

さらに、でやる#listocaml toplevel

# #list;;
bigarray            (version: [distributed with Ocaml])
camlp4              (version: [distributed with Ocaml])
camlp4.exceptiontracer (version: [distributed with Ocaml])
camlp4.extend       (version: [distributed with Ocaml])
...

batteriesパッケージが見えません。


どうしたの?

4

1 に答える 1

4

OPAMを使用しない理由はありますか?(https://github.com/OCamlPro/opam

OPAMをインストールし、お気に入りのバージョンの4.0xコンパイラ(たとえばopam switch 4.00.1)に切り替えて、次のコマンドを実行しますopam install batteries。バニラトップレベルの代わりにopam install utop使用することをお勧めします。utopどちらの場合にも:

あなたの中に以下を入れてください~/.ocamlinit

#use "topfind";;
#require "batteries";;
open Batteries;;

バッテリーを機能させるために必要なのはこれだけです。

于 2013-02-19T07:24:27.820 に答える