0

lablgtk2 がどのように機能するかを確認するために、非常に小さなビネットをコンパイルしようとしています。

(* file: base.ml *)
let main () =
  let window = GWindow.window () in
  window#show ();
  GMain.Main.main ()

let _ = main ()

wodi32 パッケージ マネージャーを使用して適切にインストールし、pgk-lib フォルダーをチェックして、gMain.cmx/cmi および gWindow.cmx/cmi ファイル (およびそれぞれの .ml および .mli ファイル) があることを確認しました。ただし、次のコンパイル コマンドを実行すると:

$ ocamlc -I +lablgtk2 -o base lablgtk.cma gtkInit.cmo base.ml

次のエラーが表示されます。

ファイル「base.ml」、4 行目、15 ~ 29 文字目:
エラー: バインドされていないモジュール GWindow

何が間違っていますか?GMain および GWindow モジュールが見つからないのはなぜですか? 実行可能ファイル (つまり、Windows/Linux スタイル) を生成する、使用できる別のコマンド ライン コンパイル ディレクティブはありますか? たとえば、GMain モジュールと GWindow モジュールを直接リンクして、それらがバインドされていないことをコンパイラが理解できるようにする方法はありますか?

奇妙なことに、次のコマンドを実行すると、動作しているように見えますが、オブジェクト ファイル (つまり、base.o、base.cmx、base.cmi) しか生成されません。

$ ocamlfind opt -package lablgtk2 -linkpkg base.ml

そのオブジェクトを実行可能ファイルに変換するにはどうすればよいですか?

4

1 に答える 1