5

でより複雑なコンパイルを学んでいOCamlます。

makeまず、私は C プログラマーではなかったので、 が何であるかを本当に知りませんMac OS X terminal

ocamlcOCaml には 、ocamlbuildocamlfind、などのようなものがありoasisます。それらに非常に混乱しました。


質問1

ocamlc, ocamlbuild,ocamlfindの中でどれを使うべきか誰か教えてもらえますoasisか?


質問2

このチュートリアルhttp://nicolaspouillard.fr/ocamlbuild/ocamlbuild-user-guide.htmlを試してみましたocamlbuild

ocaml-batteriesしかし、やなどの外部ライブラリを使用したい場合、 を使用camomileしてこれらのライブラリをリンクするにはどうすればよいocamlbuildですか?


質問 3

これは、すべての外部ライブラリに関するより実用的な質問です。

そのため、多くの ocaml ライブラリについては、opam installそれらをインストールするために使用します。

  1. なぜライブラリをインストールする必要があるのですか? つまり、Java では通常、lib をどこかにコピーしてから、lib のパスを-classpathorに含めます-cp。では、なぜ OCaml ライブラリをインストールする必要があるのでしょうか?

  2. opam install(utf8 の場合)などの lib の後camomile、何が起こったのか、何が起こるのでしょうか? この種のインストールは、ライブラリのソースファイルをダウンロードしてどこかにコピーするだけですか?

  3. どうすればライブラリを見つけることができますか?たとえば、 Iopam install camomileの場合、自分のコードでそれらをリンクまたは使用するにはどうすればよいですか?

  4. 通常、どのように使用するのocaml libraryですか?たとえば、camomile( http://camomile.sourceforge.net/dochtml/index.html ) には、 などの 3 つのモジュールがありますCamomileLibrary。つまりopen、コードにモジュールを含める必要があります。

4

1 に答える 1

2

ツール:

  • ocamlc: OCaml からバイトコードへのコンパイラ
  • ocamlopt: OCaml からネイティブ コードへのコンパイラ
  • ocamlfind: さまざまな OCaml パッケージとコンパイル/リンクするための ocamlc と ocamlopt のラッパー。 -linkpkg -o yourfile' 実行可能ファイルを作成する
  • oasis: C/C++ 用の autoconf&automake のようなビルド システム ジェネレーターですが、はるかにシンプルです。

最近の ocamlbuild では、「ocamlbuild -use-ocamlfind -pkg -pkg ...」を使用して、ocamlfind パッケージ package1、package2 でプロジェクトをすばやくビルドできます。次のステップは、「ocamlbuild -use-ocamlfind」を使用して、_tags ファイルに package() ディレクティブを配置することです。

ただし、oasis を試すことをお勧めします。これにより、プロジェクトのビルド システムの作成が簡単になります。oasis または ocamlbuild を使用しているときに「内部で」何が起こるかを確認したい場合は、_build/_log ファイルを参照してください。すべての ocamlfind/ocamlc/ocamldep/ocamlopt 呼び出しが含まれています。

opam の質問は、おそらく別の質問に属します。

于 2013-04-24T15:44:27.727 に答える