我试图在Ubuntu 64机器上编译
MEGAM Ocaml库的源代码.
我安装了OCaml(v 3.12.1),使用sudo apt-get install ocaml.
在解压缩的源代码的终端中运行“make”命令时,我遇到了一个问题,OCaml返回错误:
/user/bin/ld: cannot find -lstr collect2: error: ld returned 1 exit status
makefile生成以下两个命令:
ocamldep *.ml > .depend
运行时没有错误
ocamlc -g -custom -o megam str.cma -cclib -lstr bigarray.cma -cclib -lbigarray unix.cma -cclib -lunix -I /usr/lib/ocaml/caml fastdot_c.c fastdot.cmo intHashtbl.cmo arry.cmo util.cmo data.cmo bitvec.cmo cg.cmo wsemlm.cmo bfgs.cmo pa.cmo perceptron.cmo radapt.cmo kernelmap.cmo abffs.cmo main.cmo
运行时抛出上面的错误.
我已经尝试从编译命令中删除-lstr,它停止抛出该特定错误,但是开始抛出另一个错误(引用未定义的全局“Bigarray”),这使得我可能会在OCaml安装期间错过任何事情,某种PATH或参考我需要设置.
任何帮助都是非常感激的,即使它只是在黑暗中的一个镜头,因为我真的很努力想出任何事情!
解决方法
The instructions given here 允许我编译没有错误.归结为:
locate libcamlstr
这告诉我libcamlstr可以在/usr/lib / ocaml(YMMV)中找到,所以我做:
cd /usr/lib/ocaml sudo ln -s libcamlstr.a libstr.a
然后我可以编译该项目:
cd /usr/local/src/cil make clean && ./configure && make