安裝特定 OCaml 編譯器版本

簡而言之

使用 opam switch set 手動選擇要使用的切換環境,並使用 dune-workspace 自動在不同環境中執行指令。

編譯環境使用 opam 切換環境管理。典型的工作流程是為專案設定一個本地 opam 切換環境,但有時您可能需要選擇不同的編譯環境(即不同的編譯器版本)。例如,在較舊/較新的 OCaml 版本上執行單元測試。

為此,您需要建立全域 opam 切換環境。要使用給定版本的編譯器建立 opam 切換環境,您可以使用

opam switch create 4.14.0 ocaml-base-compiler.4.14.0

這將建立一個名為 4.14.0 的新切換環境,並使用編譯器版本 4.14.0

可以使用以下方式檢索可用的編譯器版本列表

opam switch list-available

這將列出所有已設定的 Opam 儲存庫的可用編譯器版本。

一旦您建立了切換環境(或者您已經有一個想要使用的切換環境),您可以執行

opam switch set <switch_name>
eval $(opam env)

以使用此切換環境設定目前的環境。

如果是新的切換環境,您需要重新安裝您的相依性(請參閱「安裝相依性」),使用 opam install . --deps-only

或者,您可能希望在給定的一組編譯環境中自動執行指令。為此,您可以在專案根目錄建立一個檔案 dune-workspace,並在其中列出您想要使用的 opam 切換環境

(lang dune 2.0)
(context (opam (switch 4.11.0)))
(context (opam (switch 4.12.0)))
(context (opam (switch 4.13.0)))

您將執行的所有 Dune 指令都將在列出的所有切換環境中執行。例如,使用上面的定義

dune runtest --workspace dune-workspace

Dune 將為 OCaml 4.11.04.12.04.13.0 執行測試。

仍然需要協助嗎?

協助改進我們的文件

所有 OCaml 文件都是開源的。發現有錯誤或不清楚的地方嗎?提交一個 pull request。

OCaml

創新。社群。安全。