首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ocamlmktop和ocamlbuild

使用ocamlmktop和ocamlbuild
EN

Stack Overflow用户
提问于 2017-03-09 10:59:10
回答 1查看 220关注 0票数 1

我有一个使用ocamlbuild成功构建的项目。然而,我也想要一种简单的方式来通过toplevel与来自不同模块的项目的各个函数进行交互,但是我使用ocamlmktop的尝试并没有像我希望的那样工作。我发现,除非我手动将.cmi文件放到活动目录中,否则我会得到一个“未绑定的模块”错误。我目前用来构建的命令是:

代码语言:javascript
复制
ocamlfind ocamlmktop -I _build -o my_ocaml -linkpkg -package str module1.cmo module2.cmo

有没有一种更好的、不那么繁琐的方法来让顶层在这个项目结构中工作,而不是把cmi文件移出_build目录?

编辑:我已经计算出,如果我运行toplevel,我可以让它加载类型和模块。

代码语言:javascript
复制
./my_ocaml -I _build

但这看起来仍然很老套。有没有办法烘焙搜索路径或cmi文件?

编辑2:我认为我的问题的解决方案实际上可能是根本不编译一个自定义的顶层,因为接口文件有这样的限制。相反,我将load指令添加到我的.ocamlinit以使用这些模块。如果有人有更好的想法来解决这个问题,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-03-10 11:08:32

您可以通过在my_ocaml.mltop文件中列出所需的模块名称来构建顶层:

代码语言:javascript
复制
Module1
Module2
subdir/Module3

然后,构建目标my_ocaml.top将以预期的方式调用ocamlmktop,您可以运行结果my_ocaml.top toplevel。

这不会更改您需要将_build添加到包含路径以使类型检查器能够找到.cmi文件的方式。您可以在通过传递命令行参数-I _build调用toplevel时执行此操作,或者使用#dir "_build";;从toplevel调用--如果您愿意,也可以将最后一个命令放入.ocamlinit中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42685864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档