ocamlmktop与绿洲

时间:2012-09-17 22:03:25

标签: ocaml

我在向ocamlmktop添加库时遇到问题。

我有一个目录 com ,目标文件为 com / com.cma

如果我在 com 目录中运行 ocamlmktop com.cma -o top ,则生成的可执行文件 top 似乎拥有该库;即,我可以输入“Com.foo ;;”它将在模块Com。

中给出foo的类型签名

但是,如果我在 com 上面的目录中运行 ocamlmktop com / com.cma -o top ,那么生成的可执行文件似乎没有库;即它响应“Com.foo ;;” “错误:未绑定模块Com”。

是否有办法包含来自不同文件夹的库,或者我是否需要将所有.cma文件放在同一个文件夹中?

另外,我正在使用OASIS构建系统;我可以通知OASIS我想要这些库吗?

编辑:

我找到了一个部分解决方案:ocamlc -pack a / a.cmo b / b.cmo -o everything.cmo,然后是ocamlmktop everything.cmo -o top;但是,这需要复制所有库并强制它们成为单个超模块的子模块。

1 个答案:

答案 0 :(得分:2)

您无法从上面的目录中使用顶层的原因是顶层不包含接口文件(.cmi),并且当用户访问某个模块时,顶层需要在磁盘上找到它们。因此,使用-I com开关加载顶级或加载问题#directory "com";;后。

NB OASIS应支持在下一版本(0.4.0)中本地构建toplevel。