2015-10-14 118 views
0

由于我在工作站上没有root访问权限,因此我在本地安装了oUnit到〜/ ounit中。我可以加载模块中的解释,如果我跑在本地目录中使用ocamlfind

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 

我在做什么错?

+0

你为什么不使用opam? –

+0

由于它在我的系统上不可用。 – marmistrz

+0

,我没有root权限 – marmistrz

回答

0

的解决方案是使用OCAMLPATH

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

您可以在不安装根OPAM很容易。例如,我的特拉维斯CI脚本安装OPAM到他们的非根容器系统是这样的:

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二进制在比官方二进制文件更广泛的系统上)