與OCaml的船舶好像Unix
和Bigarray
某些模塊在ocamlopt -where
自己.cmx
和.cmxa
文件(這是~/.opam/4.03.0/lib/ocaml
我的系統上我目前OPAM開關)。OCaml的靜態檢測非pervasives庫相關的標準分配
有沒有一種方法可以確定沒有編譯哪個源文件依賴於標準分佈中的哪些「特殊」庫?我打算稍後在Makefile中使用此輸出。
下面的程序example.ml
open Unix;;
Unix.system "echo hi";;
可以用ocamlfind ocamlopt -package unix -linkpkg example.ml
進行編譯。我不確定如何編譯它,而不通過ocamlfind
包裝。
我想知道是否有一種方法可以靜態檢測到此文件中的未綁定模塊Unix
對應於標準分發中的「某些內容」,並將unix.cmxa
報告爲依賴項。 ocamldep
默認情況下似乎不會將其報告爲依賴項。
ocamldep -all example.ml
只是報告可以使用example.ml
生成的各種對象和接口文件取決於example.ml
。我希望得到一個錯誤消息,抱怨ocamldep不理解Unix
模塊或者某些跡象表明它需要構建對象。
$ ocamldep -all example.ml
example.cmo example.cmi : example.ml
example.cmx example.o example.cmi : example.ml
'ocamlfind ocamlopt -verbose -package unix -linkpkg example.ml'顯示爲編譯'example.ml'而執行的實際命令。 – camlspotter