当我尝试使用
在emacs中编译我的文件时ocamlbuild -use-ocamlfind main.native
我有这个错误:
ocamlbuild -use-ocamlfind main.native
Failure: ocamlfind not found on path, but -no-ocamlfind not used.
当我使用相同的命令编译它但在我的终端(zsh)中,我没有问题。我认为emacs没有找到ocamlfind
有问题,但我不明白这个问题可能是什么。 (一切都安装了opam,我在已安装的软件包中安装了OCamlbuild和OCamlfind,我做了eval $(opam config env)
)
当我M-x getenv PATH
时,我在终端中拥有完全相同的路径。
答案 0 :(得分:1)
显然,在Emacs中未正确设置环境。您可以从执行eval $(opam config env)
的终端运行emacs,然后它将继承所有需要的变量。或者,您可以使用以下命令:
(defun opam-env ()
(interactive nil)
(dolist (var
(car (read-from-string
(shell-command-to-string "opam config env --sexp"))))
(setenv (car var) (cadr var))))
只需将其添加到初始化脚本中,并在运行新的Emacs副本或每次切换到另一个编译器时使用M-x opam-env
运行。
答案 1 :(得分:1)
使它成功的是在emacs中写这个:
(setq shell-file-name "zsh")
(setq shell-command-switch "-ic")
我不明白为什么。