4

関数time.mlのunixgettimeofday ()を使用して現在の時刻を取得する関数があります。ファイルは次の方法で関数にアクセスします。

open Unix; (*declared at the top of the file*)

let get_time ()  = Unix.gettimeofday ()

.mliファイルの対応するエントリは次のようになります。

val get_time : unit -> float

しかし、コンパイル中にエラーが発生します。

File "_none_", line 1, characters 0-1:
No implementations provided for the following modules:
Unix referenced from time.cmx

次のファイルが/lib/ocamlディレクトリにあることを確認しました。

unix.cmi, unix.a unix.cma unix.cmx unix.cmxa unix.cmxs unix.mli 

パスは.bashrcファイルで正しく設定されています。

LD_LIBRARY_PATH=~/lib

Printfモジュールのfprintfのような他の関数は、同じ/ lib / ocamlディレクトリにあるにもかかわらず、正しく機能します。

何が間違っている可能性があるのか​​?私は何か間違ったことをしているのですか、それとも何かが足りないのですか?

4

2 に答える 2

6

次のようにコンパイルする必要があります。

ocamlc unix.cma -c time.mli time.ml (* bytecode *)

また

ocamlopt unix.cmxa -c time.mli time.ml  (* native code *)
于 2012-06-07T09:54:05.260 に答える
4

適切に構成されたfindlibがある場合は、

ocamlfind ocamlopt -package Unix -linkpkg time.ml

.cmaまたは.cmxaバージョンを選択する手間を省くことができます。

于 2012-06-08T08:38:25.313 に答える