ocamlmktopにライブラリを追加するのに問題があります。
オブジェクトファイルcom/com.cmaを持つディレクトリcomがあります。
comディレクトリ内でocamlmktopcom.cma-o topを実行すると、結果の実行可能topにライブラリが含まれているように見えます。つまり、「Com.foo;;」と入力できます。そしてそれはモジュールComのfooの型署名を与えるでしょう。
ただし、comの上のディレクトリ内でocamlmktop com / com.cma -o topを実行すると、結果の実行可能ファイルにライブラリがないように見えます。つまり、「Com.foo;;」に応答します。「エラー:バインドされていないモジュールCom」が表示されます。
異なるフォルダーのライブラリを含める方法はありますか、それともすべての.cmaファイルを同じフォルダーに入れる必要がありますか?
また、私はOASISビルドシステムを使用しています。これらのライブラリのトップレベルが必要であることをOASISに通知できますか?
編集:
部分的な解決策を見つけました:ocamlc -pack a / a.cmo b / b.cmo -o every.cmo、次にocamlmktop every.cmo -o top; ただし、これにはすべてのライブラリを複製する必要があり、それらを単一のスーパーモジュールのサブモジュールにする必要があります。