そこには多く の リソース が あります。
main.native
最初に、 as にタグを付けて c-stub への依存関係を作成し、それに応じてリンクする必要があります。(ちなみに、これは c-library が と呼ばれていることを前提としていcstub
ますが、好きなようにすることができます)。
_tags
:
<*.{byte,native}> : use_cstub
<**/*.cm{x,}a> : use_cstub
次に、myocamlbuild.ml
タグ付けされたものへの c-library の依存関係を作成します。
dep ["link";"ocaml";"use_cstub"] ["libcstub.a"]
OCamlbuild にはライブラリ ファイル(*.so および *.a) を作成するためのルールがありますが、ビルド対象のファイルのリストをファイルに追加する必要があり.clib
ます。
cstub.clib
:
cobjfile1.o
cobjfile2.o
...
すべてのヘッダー ファイルも、メイン ディレクトリからディレクトリにコピーする必要があります_build/
。これは、それらが c でのコンパイルに依存していることを指定することによって行われます ( はmyocamlbuild.ml
、headers
プロジェクト内のヘッダー ファイルの名前を示す文字列のリストです。
dep ["c"; "compile"] headers;
最後に、プロジェクトを c-stub ライブラリにリンクするときにフラグを追加します (これも にありますmyocamlbuild.ml
)。
flag ["link";"ocaml";"use_cstub"] (S[A"-dllib";A"-lcstub";A"-cclib";A"-lcstub"]);