9

コマンドを使用してプロジェクトをコンパイルしたかった:

ocamlfind ocamlopt -package ocamlnet -package batteries -package unix -linkpkg oauth.ml

しかし、私は次のエラーが発生しています:

ocamlfind: Package `ocamlnet' not found
make: *** [oauth.cmi] Error 2

この問題についていくつか調査した後、opam を介してインストールされたパッケージと、opam のインストール前にインストールされたパッケージ (この場合は ocamlfind を使用) に問題がある可能性があることを読みました。その問題を解決するために私が何をしようとしているか知っている人はいますか?

$ which ocamlfind
/home/user/.opam/4.00.1/bin/ocamlfind

$ opam list 
Installed packages for 4.00.1:
[...]
ocamlfind             1.4.0  A library manager for OCaml
[...]

前もって感謝します。

4

2 に答える 2

2

コメントの制限と私が作成した部分的な結果のため、回答を作成しています。「~/.opam」ディレクトリで「grep -r 'ocamlnet' *」を実行した結果は次のとおりです: http://pastebin.com/8cJqMXDYすべて(または間違った場所で探しています-しかし、コメントに書いたように、すべてがopamを使用してインストールされました-この件についていくつかの意見を聞いてうれしいです)。これらの疑いは、次の 2 つの方法で部分的に確認される可能性があります。

  1. 実際、1 ~ 90 行目には ocamlnet コンポーネントのすべてのバイナリがあります ( http://projects.camlcity.org/projects/dl/ocamlnet-3.7.3/doc/html-main/index.html )
  2. 行 90-* は、opam を使用してこのパッケージを管理するために必要ないくつかのファイル以外のようには見えません。例えば

    ~/.opam/repo/default/packages/ocamlnet$ tree -r .
    .
    ├── ocamlnet.3.7.3
    │   ├── url
    │   ├── opam
    │   ├── files
    │   │   └── ocamlnet.install
    │   └── descr
    ├── ocamlnet.3.6.5
    │   ├── url
    │   ├── opam
    │   ├── files
    │   │   ├── ocamlnet.install
    │   │   ├── netpop.patch
    │   │   ├── nethttpd_types.patch
    │   │   └── cloexec.patch
    │   └── descr
    ├── ocamlnet.3.6.3
    │   ├── url
    │   ├── opam
    │   ├── files
    │   │   └── ocamlnet.install
    │   └── descr
    ├── ocamlnet.3.6.0
    │   ├── url
    │   ├── opam
    │   ├── files
    │   │   ├── ocamlnet-ocaml4.diff
    │   │   └── ocamlnet.install
    │   └── descr
    ├── ocamlnet.3.5.1
    │   ├── url
    │   ├── opam
    │   ├── files
    │   │   └── ocamlnet.install
    │   └── descr
    └── ocamlnet.3.2.1
        ├── url
        ├── opam
        ├── files
        │   └── ocamlnet.install
        └── descr
    

私はそれを深く掘り下げるのに十分な知識を持っていませんが、ocamlnet は、opam で使用される他のいくつかのパッケージの単なるショートカットになっているように見えます。特に変えた後は

-package ocamlnet

私が使用している正確なモジュールへ

-package netstring

すべてが正常にコンパイルされました。ocamlnet パッケージ (および Michael のヒント) B) の奇妙なケースについては、他の解決策や説明をまだ受け付けています。

于 2014-01-04T10:28:03.380 に答える