ocamlbuildを使用して正常にビルドされたプロジェクトがあります。しかし、私はまた、トップレベルを介して異なるモジュールからのプロジェクトの個々の機能とやりとりする簡単な方法が好きですが、ocamlmktopを使った私の試みはうまくいきませんでした。私は、手動で.cmiファイルをアクティブディレクトリに置かない限り、「Unbound module」エラーが発生することがわかりました。私は現在、構築するために使用しているコマンドは次のとおりです。ocamlbuildでocamlmktopを使用する
ocamlfind ocamlmktop -I _build -o my_ocaml -linkpkg -package str module1.cmo module2.cmo
_buildディレクトリの外にCMIファイルを移動せずに、このプロジェクト構造に動作するようにトップレベルを取得するためのより良い、より少ないハック方法はありますか?
編集:私は私が
./my_ocaml -I _build
としてトップレベルを実行します。しかし、これはまだハックと思われる場合、それはタイプとモジュールをロードするために得ることができることを考え出しました。おそらく、検索パスやcmiファイルを焼く方法はありますか?
編集2:私の問題に対する解決策は、インターフェイスファイルに関するこの制限が与えられていても、実際にカスタムトップレベルをコンパイルすることではないと思われます。代わりに私の.ocamlinitにロードディレクティブを追加してモジュールを使用しました。誰かがこれを解決するためのより良いアイデアを持っているなら、私はそれを高く評価します。
Module1
Module2
subdir/Module3
が次に予想される方法で
ocamlmktop
を呼び出すターゲット
my_ocaml.top
を構築し、あなたは結果
my_ocaml.top
トップレベルを実行することができます。