我是Ocaml的新手,刚刚用emacs,merlin和flycheck设置了我的开发环境。除了一件事情之外,一切都会或多或少地发挥作用:merlin似乎无法识别同一项目中模块之间的依赖关系。Merlin抱怨同一个项目中缺少一个模块
例如我有两个模块的测试项目:main.ml和awesome.ml。
这里是我的main.ml它引用的第二模块awesome.ml
(* main.ml *)
open Core
module A = Awesome
let _ =
Printf.printf "hello \n Converted to string we get: %s\n"
(A.str_of_t (A.succ A.one_t));
这里是awesome.ml:
(* awesome.ml *)
type t = int
let one_t = 1
let succ i = i + 1
let str_of_t = string_of_int
当我发送main.ml缓冲,以评估为UTOP与utop-eval-buffer函数,我得到一个错误:“Error:Unbound module Awesome”
我有.merlin在有S指令的项目的根目录下。 我知道它是由梅林发现,因为它不抱怨“开核”
S src
PKG core lwt ounit
B _build/src
B +threads
这里是我的_tags:
<src/**>: include
<src/**>: package(oUnit), package(core)
true:thread
与ocamlbuild经常项目编制工作正常,没有错误。 这里是Makefile中
## Makefile
default: main
main: main.native
test: test.native
%.native:
ocamlbuild -use-ocamlfind [email protected]
mv [email protected] $*
.PHONY: test default
为什么真棒模块没有UTOP承认或这是预期的行为的任何想法?
不,我不知道;我不抱怨 – Merlin