0

我正在尝试通过命令行远程机器.ml使用命令编译 OCaml 文件,但它向我显示此错误:make

+ ocamlfind ocamlc -c -package xmlm -package unix -o pms.cmo pms.ml
ocamlfind: Package `xmlm' not found
Command exited with code 2.
Hint: Recursive traversal of subdirectories was not enabled for this build,
  as the working directory does not look like an ocamlbuild project (no
  '_tags' or 'myocamlbuild.ml' file). If you have modules in subdirectories,
  you should add the option "-r" or create an empty '_tags' file.
  
  To enable recursive traversal for some subdirectories only, you can use the
  following '_tags' file:
  
      true: -traverse
      <dir1> or <dir2>: traverse
      
Compilation unsuccessful after building 6 targets (5 cached) in 00:00:00.
Makefile:10 : la recette pour la cible « native » a échouée
make: *** [native] Erreur 10

我尝试使用以下命令导出环境:

eval $(/usr/bin/opam config env --root=/path/Ocaml/opam-ocaml-4.04-strech)

但我也有这个错误:

# opam-version    1.2.2
# os              linux
File /p/opas/src/Ocaml/opam-ocaml-4.04-strech/config does not exist

虽然该config文件确实存在于目录中

有什么帮助吗?!谢谢

4

1 回答 1

1

要通过 opam 提供包(假设 opam 已正确安装和配置),您需要:

  1. 安装软件包
  2. 激活你的 opam

要安装名为 foo 的包,请在 shell 中执行以下命令

opam install foo

要激活您的 opam 安装(启用搜索路径),请发出以下命令

eval $(opam config env)

或者,使用现代 opam(即版本 2.x)只是eval $(opam env)

在此之前,您需要正确初始化您的 opam 安装,即安装编译器(或使用系统编译器)和基础包。这是通过opam init在您家中创建 opam 管理的子目录的命令完成的,例如,使用(按照今天的标准旧的)OCaml 版本 4.04.0,您可以像这样初始化它

opam init --comp=4.04.0

初始化完成后,不要忘记通过激活它eval $(opam config env),现在您可以安装包了。

最后,opam您使用的版本已经过时并且很久以前就被弃用了,因此它没有接收更新,并且该版本可以理解的存储库被冻结并且不再更新。您确实需要将 opam 更新到 2.x 版本。请按照opam 安装说明获取最新版本。

于 2021-02-09T18:15:56.090 回答