簡體   English   中英

OCaml錯誤:未綁定的模塊事件

[英]OCaml error: Unbound module Event

我嘗試構建一個簡短的ocaml事件示例。 但是當我編譯時,標題中出現錯誤。

問題: 未綁定的模塊編譯Ocaml游戲時發生事件錯誤對我沒有幫助。

系統是Kubuntu 14.04,我通過aptitude安裝了ocaml,因此安裝的軟件包為:

camlp4,ledit,libfindlib-ocaml,libfindlib-ocaml-dev,liboasis-ocaml,liboasis-ocaml-dev,libodn-ocaml,libodn-ocaml-dev,libtype-conv-camlp4-dev,oasis,ocaml,ocaml-base, ocaml-base-nox,ocaml-compiler-libs,ocaml-doc,ocaml-findlib,ocaml-interp,ocaml-native-compilers,ocaml-nox

OCaml編譯器版本為4.01.0

這是我的簡短測試程序。

open Thread;;
open Event;;

let chan = Event.new_channel();;

let a () =
    Printf.printf "A waiting...\n";;
    let sigRX = Event.receive chan  in
        Printf.printf "A received over channel\n";
        let v = Event.sync sigRx  in
            Printf.printf "A running\n";
    Printf.printf "A done!\n";;

let b () = 
    Thread.delay 0.8
    Printf.printf "B sending...\n";;
    let sigTX = Event.send "wake up"  in
        Event.sync sigTX;
        Printf.printf "B done!\n";;


let t_a = Thread.create a ();;
let t_b = Thread.create b ();;

我嘗試使用以下命令編譯該文件(test.ml):

ocamlc -thread unix.cma threads.cma test.ml

響應為:

File "test.ml", line 2, characters 0-10:
Error: Unbound module Event

我用Google搜索,發現了一些“線程使用技巧”,例如: http : //caml.inria.fr/pub/docs/manual-ocaml/libthreads.html#c%3Athreads

/ usr / lib / ocaml中是一個線程文件夾和一個thread.mli 在threads文件夾內有以下文件:

-rw-r--r-- 1 root root   487 Jan  2  2014 condition.cmi
-rw-r--r-- 1 root root   487 Jan  2  2014 condition.cmx
-rw-r--r-- 1 root root  1203 Jan  2  2014 event.cmi
-rw-r--r-- 1 root root  1867 Jan  2  2014 event.cmx
-rw-r--r-- 1 root root   421 Jan  2  2014 mutex.cmi
-rw-r--r-- 1 root root   407 Jan  2  2014 mutex.cmx
-rw-r--r-- 1 root root  1859 Jan  2  2014 thread.cmi
-rw-r--r-- 1 root root  1308 Jan  2  2014 thread.cmx
-rw-r--r-- 1 root root 62778 Jan  2  2014 threads.a
-rw-r--r-- 1 root root 47047 Jan  2  2014 threads.cma
-rw-r--r-- 1 root root  1258 Jan  2  2014 threads.cmxa
-rw-r--r-- 1 root root  4145 Jan  2  2014 threadUnix.cmi
-rw-r--r-- 1 root root  1515 Jan  2  2014 threadUnix.cmx

我想念什么? 我認為,該事件打包在線程模塊中嗎?

該命令行對我有用,可以解決未綁定模塊的問題。

$ ocamlc -I +threads -c test.ml

您的代碼中有錯誤,但是我想您會知道如何解決它們。

這個完整的命令行可能會起作用,但是由於錯誤我不能確定:

$ ocamlc -thread -I +threads unix.cma threads.cma test.ml

(某些時候可能需要學習一些用於構建OCaml程序的高級工具。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM