使用するのと同じ流れで:
ocamlc -i foo.ml
foo.mlのデフォルト署名を生成するには、コンパイル済みファイル (*.cmo) またはアーカイブ (*.cma) から署名を生成する方法はありますか?
私の使用例は、リンクしたいアーカイブabcd.cmaがあり、多数のモジュール (モジュールa、b、c、およびdなど) が含まれており、複数の *.mli および * を気にしたくない場合です。 cmi my Makefile は、(ライブラリを使用する) ユーザー側コードをコンパイルおよびリンクするために処理する必要があります。たとえば、 abcd.cmaアーカイブにあるaモジュールのみを使用するuses_a.mlファイルがあるとします。私の理解では、abcd.cmaモジュールとリンクするには、次 の手順を実行する必要があります。
ocamlc -i a.ml > a.mli
ocamlc -c a.mli
ocamlc -c uses_a.ml
ocamlc abcd.cma uses_a.cmo
ソースや署名にアクセスできない場合、これは複雑すぎるか不可能に思えます。最後のコマンドでアーカイブ全体をコンパイラに提供することを考えると、モジュールの特定の署名ファイルをコンパイルする (または、ソースにアクセスできる場合は生成する) という儀式を行わなければならない理由が明確ではありません。使用しています。最後のコマンドは、ツールによって、その行の後続のモジュールが使用するアーカイブに存在する任意のモジュールの「デフォルト」署名を使用するための招待として解釈される可能性があります。ところで、現時点では Makefile の自動生成ツールを使用したくありません。