11

他の OCaml プロジェクトで使用できるライブラリを作成しようとしていますが、完全に迷っています。

私は現在ocamlbuild、実行可能ファイルを吐き出すのに最適なツールを使用していますが、そこからライブラリを取得する方法がわかりません。

ocamloptandで -a オプションを発見しましたが、そのocamlc使用方法がよくわかりません。私が見つけたドキュメント (たとえば、こちら) は、ある程度の既存の知識を前提としているようです。.a ファイルが何であるかさえ知りません。それを実行した後、出力されたファイルのうち、このライブラリに依存するプロジェクトをビルドする必要があるのはどれですか? アプリケーションがライブラリ コードの署名を認識できるように、mli ファイルが必要ですか、それとも何らかの形で出力に含まれていますか? また、Java の .jar ファイルのように、すべてのファイルをまとめてパッケージ化できると便利です。

いずれにせよ、ocamlbuild呼び出す必要がある場合は、ocamlopt -a依存関係を手動で指定するか、スクリプトをハックする必要があるため、これらすべてを自分でやりたいと思っていますocamldep-ocamlbuild修正するはずだったもの. ただし、ライブラリを構築するように指示する方法がわかりません。

必要に応じてオアシスや OPAM などを使用したいと考えていますが、最初は基本的なツールだけを使用してこれを行う方法を学びたいと考えています。

4

2 に答える 2

4

OCamlbuild にはライブラリを構築するための機能が組み込まれているため、 (がエントリ ポイントであるとocamlbuild foo.cma foo.cmxa仮定して) から始めることができます。foo.mlこれにより、 ocamlopt -aandが呼び出さocamlc -aれ、すべての依存関係の配管が処理され、生成されたファイルが 内に残されます_build

ライブラリをコンパイルして別のプログラムからリンクするには、これで十分です。これは単なるテストであるため、ライブラリを使用するプログラムをコンパイルするときに、前述の_buildwith を指定するだけでかまいません。-I実際に使用するには、ライブラリをパッケージ化する必要があります。その時点に達したら、ocamlfind や oasis などを調べる必要があります。

OCaml プロジェクトのコンパイルに関するocaml.orgのチュートリアルをご覧ください。さらに、バイトコードおよびネイティブ コードコンパイラの公式マニュアルには、さまざまな種類のファイルの生成と使用に関する有用な詳細が含まれています。

于 2014-05-26T07:57:31.833 に答える