簡體   English   中英

(Ocaml)可視代碼上的未綁定模塊錯誤

[英](Ocaml) unbound module error on visual code

我剛開始學習Ocaml。 我在 Ubuntu 上使用可視代碼作為我的 IDE,並且安裝了 OCaml 擴展和 merlin。

我有以下問題 -

我的工作區文件夾僅包含 2 個文件:a.ml 和 b.ml。

在 a.ml 文件中,我定義了一個名為“COOL”的模塊,在 b.ml 文件中我寫道:

~ b.ml ~

open COOL;;

我收到一條錯誤消息,提示“未綁定模塊 COOL merlin”

有沒有辦法讓它看到文件 a.ml 上的模塊? 我嘗試尋找解決方案,我看到 makefile 和.merlin 和 B 構建但我不明白,除了我提到的 2 個文件之外我什么都沒有。 如果有人能告訴我應該做什么才能讓這個小例子起作用,我會很高興。

tl; 博士:執行ocamlc -c a.ml (或任何您的編譯命令)以生成 merlin 將用於獲取模塊A中定義的符號列表的a.cmi文件。

除了在b.ml中你的模塊確實被命名為A.COOL (除非你在open COOL之前打開open A ),正如 glennsl 提到的那樣,關鍵是,據我所知, merlin只觀看正在編輯的當前文件,即b.ml在您的情況下。 為了訪問外部符號,您需要編譯其他文件(或者至少編譯它們對應的.mli ,如果它們存在的話),以便 merlin 可以使用相關的.cmi文件。

這在描述構建路徑的文檔段落中是隱含的,它說“[merlin] 需要知道在哪里可以找到項目其他模塊的 cmi 文件”,即這些文件首先需要存在。

暫無
暫無

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

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