我看到OCaml opam repository中的base-unix
包。它被描述爲「隨OCaml編譯器分發的Unix庫」。其他一些與OCaml編譯器一起發佈的庫沒有自己的軟件包。例如,str
庫中不存在base-str
包。爲什麼一些標準ocaml庫opam軟件包和一些不是?
爲什麼會有這樣的差異?據我所知,在使用ocamlfind
或ocamlbuild
編譯時,它們都需要在命令行中指定爲程序包或庫。
我看到OCaml opam repository中的base-unix
包。它被描述爲「隨OCaml編譯器分發的Unix庫」。其他一些與OCaml編譯器一起發佈的庫沒有自己的軟件包。例如,str
庫中不存在base-str
包。爲什麼一些標準ocaml庫opam軟件包和一些不是?
爲什麼會有這樣的差異?據我所知,在使用ocamlfind
或ocamlbuild
編譯時,它們都需要在命令行中指定爲程序包或庫。
圖書館與OPAM包名基地-XXX是可選庫:他們是從OCaml的編譯器本身,但是他們可能因計算機環境下,操作系統可能無法安裝和構建編譯器的配置標誌。例如,存在base-unix意味着unix庫在該環境中可用。
在另一方面,STR庫不依賴於系統的,因此安裝可在任何地方OCaml的。因此,OPAM不需要明確地提供它的基本包來告訴庫的存在。
雖然STR存在於所有的OCaml的裝置,其連接不是自動的。這就是爲什麼ocamlfind需要一個軟件包。
OPAM包是通過opam命令安裝的。 OCamlFind軟件包用於鏈接。它們是相關的但不同的。令人困惑,但這是我們現在在OCaml生態系統中所擁有的。
絕對令人困惑,請修正:-) – mljrg