1

Ocaml は初めてで、 http://lambda-diode.com/software/ocaml/からゲーム mltetris をコンパイルしようとしていました。Windows 7 と ocaml バージョン 4.00.0 を使用していますが、以下のコマンドを使用してコンパイルしようとすると、このエラーが発生します

C:\Users\WASSWA SAM\ocaml stuff\mltetris>ocamlc -pp camlp4o -o tetris.exe human.
ml game.ml play.ml tetris.ml tetris.mli
File "play.ml", line 21, characters 16-26:
Error: Unbound module Event

Event Module は標準ディストリビューションの一部であるはずではありませんか? このコマンドを使用してライブラリを確認しました

C:\Users\WASSWA SAM\ocaml stuff\mltetris>ocamlfind list
bigarray            (version: [distributed with Ocaml])
camlp4              (version: [distributed with Ocaml])
camlp4.exceptiontracer (version: [distributed with Ocaml])
camlp4.extend       (version: [distributed with Ocaml])
camlp4.foldgenerator (version: [distributed with Ocaml])
camlp4.fulllib      (version: [distributed with Ocaml])
camlp4.gramlib      (version: [distributed with Ocaml])
camlp4.lib          (version: [distributed with Ocaml])
camlp4.listcomprehension (version: [distributed with Ocaml])
camlp4.locationstripper (version: [distributed with Ocaml])
camlp4.macro        (version: [distributed with Ocaml])
camlp4.mapgenerator (version: [distributed with Ocaml])
camlp4.metagenerator (version: [distributed with Ocaml])
camlp4.profiler     (version: [distributed with Ocaml])
camlp4.quotations   (version: [distributed with Ocaml])
camlp4.quotations.o (version: [distributed with Ocaml])
camlp4.quotations.r (version: [distributed with Ocaml])
camlp4.tracer       (version: [distributed with Ocaml])
compiler-libs       (version: [distributed with Ocaml])
compiler-libs.bytecomp (version: [distributed with Ocaml])
compiler-libs.common (version: [distributed with Ocaml])
compiler-libs.optcomp (version: [distributed with Ocaml])
compiler-libs.toplevel (version: [distributed with Ocaml])
dbm                 (version: [distributed with Ocaml])
dynlink             (version: [distributed with Ocaml])
findlib             (version: 1.3.3)
graphics            (version: [distributed with Ocaml])
labltk              (version: [distributed with Ocaml])
num                 (version: [distributed with Ocaml])
num-top             (version: 1.3.3)
num.core            (version: [internal])
ocamlbuild          (version: [distributed with Ocaml])
stdlib              (version: [distributed with Ocaml])
str                 (version: [distributed with Ocaml])
threads             (version: [distributed with Ocaml])
threads.posix       (version: [internal])
unix                (version: [distributed with Ocaml])

何が足りないのかわからない。

4

2 に答える 2

1

イベントモジュールは、スレッド機能の一部のようです。マニュアルには次のように書かれています。

システムスレッドを使用するプログラムは、次のようにリンクする必要があります。

   ocamlc -thread other options unix.cma threads.cma other files  
   ocamlopt -thread other options unix.cmxa threads.cmxa other files
于 2012-11-08T23:11:58.840 に答える
1

はい、Event標準ライブラリの一部です。

私のマシンでは、次の一連のコマンドが機能しています。

ocamlopt -thread  -c human.ml
ocamlopt -thread  -c game.ml
ocamlopt -thread  -c tetris.ml
ocamlopt -thread  -c play.ml
ocamlopt -thread  unix.cmxa threads.cmxa graphics.cmxa human.cmx game.cmx tetris.cmx play.cmx   -o tetris.opt



すべてのファイルを手動でコンパイルする代わりに (この場合はうまくいく可能性があります)、より長期的なアプローチは、コマンドを発行するだけで、提供された Makefile を使用することです。

make

(上記のコマンドは実際に実行されるものmakeです)。Windows を使用しているようです。その場合、Cygwin をインストールするオプションがありますmake。Cygwin はそれ自体が 1 つの章です。開始する前に、Cygwin について読んでください。

于 2012-11-08T23:10:03.860 に答える