0

由于我在工作站上没有 root 访问权限,因此我在本地将 oUnit 安装到 ~/ounit 中。如果我运行,我可以在解释器中加载模块

ocaml -I ~/ounit/oUnit

现在我想运行测试,所以我尝试编译它:

ocamlfind ocamlc -o test -package oUnit -I ~/ounit/oUnit -linkpkg -g foo.ml test.ml

不幸的是,ocamlfind 没有检测到 oUnit 包

ocamlfind: Package `oUnit' not found

我究竟做错了什么?

4

2 回答 2

1

您可以很容易地在没有 root 的情况下安装 OPAM。例如,我的 Travis CI 脚本将 OPAM 安装到他们的非 root 容器系统上,如下所示:

wget https://downloads.sourceforge.net/project/zero-install/0install/2.8/0install-linux-x86_64-2.8.tar.bz2
tar xjf 0install-linux-x86_64-2.8.tar.bz2
cd 0install-linux-x86_64-2.8
./install.sh home
export PATH=$HOME/bin:$PATH
0install add opam http://tools.ocaml.org/opam.xml

(通过 0install 安装的优点是您将自动获得 opam 的更新,并且 opam 的 0install 二进制文件适用于比官方二进制文件更广泛的系统)

于 2015-10-15T14:57:14.480 回答
0

解决方案是使用OCAMLPATH

OCAMLPATH=~/ounit ocamlfind ocamlc -o test -package oUnit -I ~/ounit/oUnit -linkpkg -g foo.ml test.ml
于 2015-10-14T14:58:49.403 回答