2014-06-05 47 views
2

我看到OCaml opam repository中的base-unix包。它被描述爲「隨OCaml編譯器分發的Unix庫」。其他一些與OCaml編譯器一起發佈的庫沒有自己的軟件包。例如,str庫中不存在base-str包。爲什麼一些標準ocaml庫opam軟件包和一些不是?

爲什麼會有這樣的差異?據我所知,在使用ocamlfindocamlbuild編譯時,它們都需要在命令行中指定爲程序包或庫。

回答

6

圖書館與OPAM包名基地-XXX是可選庫:他們是從OCaml的編譯器本身,但是他們可能因計算機環境下,操作系統可能無法安裝和構建編譯器的配置標誌。例如,存在base-unix意味着unix庫在該環境中可用。

在另一方面,STR庫不依賴於系統的,因此安裝可在任何地方OCaml的。因此,OPAM不需要明確地提供它的基本包來告訴庫的存在。

雖然STR存在於所有的OCaml的裝置,其連接不是自動的。這就是爲什麼ocamlfind需要一個軟件包。

OPAM包是通過opam命令安裝的。 OCamlFind軟件包用於鏈接。它們是相關的但不同的。令人困惑,但這是我們現在在OCaml生態系統中所擁有的。

+0

絕對令人困惑,請修正:-) – mljrg

相關問題