2

OASIS でコンパイルしようとしている新しいプロジェクトがあります。1 つを除くすべてのパッケージが opam でインストールされます。

私の_oasisファイルは次のようになります:

(* usual package fields *)

Executable myexe
  Path:       src
  BuildTools: ocamlbuild
  MainIs:     myexe.ml
  BuildDepends:
        some_packages_installed_with_opam
        mylocalpackage

その時試してみoasis setupまし./configureたが、OCamlfind は見つからないと答えましたmylocalpackage。そこで、OCamlfind がパッケージを検索する場所を調べてみることにしました。OCAMLPATH変数を設定して、パッケージがインストールされる可能性のあるディレクトリを追加できることがわかりました。だから私はそうしてexport OCAMLPATH=path_to_mylocalpackage:$OCAMLPATH、もう一度やり直しました。

oasis setupこの結果が得られます:

findlib: [WARNING] While parsing 'path_to_my_local_package/META.in': 
         The `directory' directive is required in this META definition

そしてocamlfind query mylocalpackage私にこの結果を与えます:

ocamlfind: Package `mylocalpackage' not found

_oasisこのパッケージの場所を書くべきなのか、それともOCAMLPATH変数を変更することが解決策なのかわかりません。しかし、もしそうなら、私は警告を理解していません。


再現する手順

試してみたい方へ:

  • なぜ3をダウンロード

  • ./configure --enable-local
    make
    
  • _oasisこのファイルで新しいプロジェクトを作成します

    OASISFormat: 0.4
    Name:        myexe
    Version:     0.1
    Synopsis:    test file
    Authors:     SO
    License:     CC-BY-NC-SA
    Plugins:     StdFiles (0.4), DevFiles (0.4)
    Alphafeatures:          ocamlbuild_more_args
    XOCamlbuildExtraArgs:
      -use-ocamlfind
    
    Executable myexe
      Path:       src
      BuildTools: ocamlbuild
      MainIs:     myexe.ml
      BuildDepends:
            unix,
            str,
            num,
            dynlink,
            zip,
            menhirLib,
            why3
      NativeOpt:            -dtypes -g -annot
      ByteOpt:              -dtypes -g -annot
      CompiledObject:       best
    
  • oasis setup
    ./configure
    
  • このエラーが発生するはずです:ocamlfind: Package 'why3' not found
4

1 に答える 1