我编译了ocaml 4.04.0的自定义版本(其他人写的)。我可以运行它并使用rlwrap和ledit与它交互,但我宁愿使用utop运行它。 (我不需要自动完成;命令编辑比在rtop或ledit更好。)与本地ocaml构建使用utop?
utop显然依赖于opam默认情况下,因为它运行使用opam switch
设置ocaml的任何版本。但是,我很难找到有关utop和opam之间关系的任何文档,或者有关如何让utop运行尚未由opam设置的ocaml版本的文档。 man utop
,opam --help
,而重复的网页搜索没有任何结果。虽然这看起来不是个好主意,但我试着用自定义可执行文件替换.opam/4.04.0/bin中的文件ocaml,但是内置于可执行文件的额外软件包不可用,所以我猜测哪些是utop运行显然是错误的。我尝试用自定义ocaml文件作为参数运行utop:utop ./ocaml
。我不认为这是可行的,基于乌托邦手册页,而事实并非如此。下一步似乎是阅读utop的资料,但作为ocaml的新手,我不愿意接受这种潜水,而且似乎不应该有必要。
如何使用我自己的ocaml可执行文件运行utop?
谢谢octachron。作为你的解释的结果,我注意到在.opam下,对于ocaml的每个版本,我都有一个不同的utop可执行文件,我有'opam'切换到过去。因此,正如你的答案所暗示的,正在制定一个新的乌托邦特定的ocaml版本。这就解释了为什么utop知道要运行哪个ocaml版本:每个版本的utop只知道它的“自己的”ocaml版本。 – Mars