ocaml命令行找不到“ topfind”

pro*_*eek 5 ocaml opam ocaml-toplevel

我已经安装了顶层服务器,并设置了$ OCAML_TOPLEVEL_PATH。

export OCAML_TOPLEVEL_PATH=/Users/smcho/.opam/system/lib/toplevel
Run Code Online (Sandbox Code Playgroud)

我检查目录是否存在,并且有一个文件topfind

这是我的~/.ocamlinit文件内容。

#use "topfind"
#camlp4o
#thread
#require "core.top"
#require "core.syntax"
Run Code Online (Sandbox Code Playgroud)

问题是我收到错误消息,说找不到topfind。

> ocaml
        OCaml version 4.02.1

Cannot find file topfind.
Unknown directive `camlp4o'.
# 
Run Code Online (Sandbox Code Playgroud)

使用“ ustop”,我没有错误信息。

可能是什么问题?

这是我的ocaml环境设置。

> opam config env
CAML_LD_LIBRARY_PATH="/Users/smcho/.opam/system/lib/stublibs:/usr/local/lib/ocaml/stublibs"; export CAML_LD_LIBRARY_PATH;
OPAMUTF8MSGS="1"; export OPAMUTF8MSGS;
MANPATH=":/Users/smcho/.opam/system/man"; export MANPATH;
MAKELEVEL=""; export MAKELEVEL;
MAKEFLAGS=""; export MAKEFLAGS;
PERL5LIB="/Users/smcho/.opam/system/lib/perl5:"; export PERL5LIB;
OCAML_TOPLEVEL_PATH="/Users/smcho/.opam/system/lib/toplevel"; export OCAML_TOPLEVEL_PATH;
PATH="..."; export PATH;
Run Code Online (Sandbox Code Playgroud)

Pat*_*atJ 3

正如samoth所说

通常,如果您不使用系统编译器,则此问题不再存在。如果您使用系统编译器,则可以修改 ~/.ocamlinit 以加载 $OCAML_TOPLEVEL_PATH,如 https://github.com/OCamlPro/opam/blob/master/shell/dot_ocamlinit中所做的那样

因此,您可以使用不同的开关或修改您的.ocamlinit.