我试图用Opam提供的Ocaml版本编译一个Ocaml项目。我的建筑,找,和绿洲似乎还好:
/Users/fred/.opam/4.02.1/bin/ocamlbuild
dhcp-182-73:compil fred$ which ocamlfind
/Users/fred/.opam/4.02.1/bin/ocamlfind
dhcp-182-73:compil fred$ which oasis
/Users/fred/.opam/4.02.1/bin/oasis但是当我试图编译时,似乎调用了一个错误的ocamlbuild版本,而且即使ocamlfind版本也是正确的,我认为它解释了ocamlfind无法找到sexplib库的原因。
$ make
ocaml setup.ml -build
Finished, 0 targets (0 cached) in 00:00:00.
+ /Users/fred/.opam/system/bin/ocamlfind ocamldep -package threads -package sexplib.syntax -package core -package comparelib.syntax -modules src/tricot/tricot.mli > src/tricot/tricot.mli.depends
ocamlfind: Package `sexplib.syntax' not found
Command exited with code 2.
Compilation unsuccessful after building 1 target (0 cached) in 00:00:00.
E: Failure("Command ''/usr/local/bin/ocamlbuild' src/tricot/tricot.cma src/tricot/tricot.cmxa src/tricot/tricot.a src/tricot/tricot.cmxs src/compil/compil.cma src/compil/compil.cmxa src/compil/compil.a src/compil/compil.cmxs src/main.native -use-ocamlfind -tag debug' terminated with error code 10")
make: *** [build] Error 1我试着告诉绿洲公司使用哪一种版本的ocambuild,但没有成功,有人知道怎么做吗?谢谢
发布于 2015-05-02 12:23:56
尝试删除setup.data并再次运行make。Oasis在第一次尝试构建时缓存路径,之后不会自动更新它们。也许你试着构建它,然后使用opam switch,然后尝试重新构建它?
发布于 2015-04-30 12:41:22
你一定是错过了
eval $(opam config env)请参阅opam switch的文档。
请注意,通常opam的安装过程应该是在新的shell上自动调用该过程。您可能希望再次运行opam init,它将提示您同意对.profile进行更改,以便在启动新shell时一切正常。
编辑:实际上,在您向我们展示的两个调用之间,您似乎切换到了system开关。因此,在system交换机中,似乎没有安装sexp。在任何情况下,当您在shell中使用opam switch时,总是调用我前面提到的命令,以便设置正确的路径。
发布于 2016-09-20 07:57:24
除了Thomas的答案之外,您还可以通过
ocaml setup.ml -distcleanhttps://stackoverflow.com/questions/29967409
复制相似问题