0

我正在尝试将一个模块从父目录加载到顶级解释器中。

#load "../Syntax.cmo";;
open Syntax

let foo = bar

bar 在语法中的位置。我在父目录中有模块语法。加载模块语法不会导致任何问题,但是打开的行会抛出错误:

Error: Unbound module Syntax

我也尝试过删除开放:

#load "../Syntax.cmo";;
let foo = Syntax.bar

但这给了我与父目录中的语法相同的错误。

有没有办法解决?

4

1 回答 1

1

您不应该使用相对路径,而是使用#directory指令:

#directory "..";;
#load "Syntax.cmo";;
let foo = Syntax.bar;;

更好的是,使用 oasis 或其他一些高级工具定义你的库,并使用它#require来加载你的库,而不是处理低级指令。

于 2015-08-04T02:59:01.173 回答