将ocamlfind与本地目录一起使用

时间:2015-10-14 13:51:04

标签: ocaml ocamlfind ounit

由于我在工作站上没有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

我做错了什么?

2 个答案:

答案 0 :(得分: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二进制文件可以在比官方二进制文件更广泛的系统上工作)

答案 1 :(得分:0)

解决方案是使用OCAMLPATH

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