ocaml命令行找不到"topfind"

Nob*_*lis 2 ocaml opam ocaml-toplevel

我已经安装opam,运行opam init,运行opam switch 4.06.0它创建了一个4.06.0内部目录~/.opam,运行"EVAL opam confing env"其中出口$OCAML_TOPLEVEL_PATH~/.opam/4.06.0/lib/toplevel除其他事项外,当启动ocaml我得到了可怕的:

$ ocaml
        OCaml version 4.06.0

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

我已经看过这个了,这一点都没有解决我的问题而且我的智慧结束了(第一次设置OCaml).这是我的~/.ocamlinit:

(* Added by OPAM. *)
let () =
  try Topdirs.dir_directory (Sys.getenv "OCAML_TOPLEVEL_PATH")
  with Not_found -> ()
;;
#use "topfind"
#camlp4o
#thread
#require "core.top"
#require "core.syntax"
Run Code Online (Sandbox Code Playgroud)

编辑:看起来我没有安装core,安装core解决了,但现在我得到的一系列导入诊断:

Exception:
Invalid_argument
 "The ocamltoplevel.cma library from compiler-libs cannot be loaded inside the OCaml toplevel".
Run Code Online (Sandbox Code Playgroud)

然后再往下走一点:

Raised at file "pervasives.ml", line 33, characters 25-45
Called from file "toplevel/toploop.ml", line 468, characters 4-128
Called from file "toplevel/topdirs.ml", line 144, characters 10-51
    Camlp4 Parsing version 4.06.0
Run Code Online (Sandbox Code Playgroud)

ivg*_*ivg 5

你应该跑

eval `opam config env`
Run Code Online (Sandbox Code Playgroud)

注意反引号.它们通常位于1大多数现代键盘上的键的左侧.该命令不应输出任何内容,如果您看到任何输出,则表示您正在错误地运行它.每次启动新shell时都必须运行此命令来激活opam安装(除非您已将此命令放在shell初始化脚本中,例如.bashrc)

如果问题仍然存在,请确保已安装ocamlfind包,

opam install ocamlfind
Run Code Online (Sandbox Code Playgroud)