2012-11-27 59 views
9

我想在Ubuntu 64机器上编译MEGAM Ocaml库的源代码。OCaml编译错误:/ usr/bin/ld:找不到-lstr

我安装了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 

生成文件正在产生以下两个命令:

当运行
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,它停止抛出那个特定的错误,但开始抛出另一个错误(Reference to undefined global 'Bigarray'),这使得我可能都是我在OCaml安装期间错过的东西,一些我需要设置一种PATH或参考。

任何帮助真的很感激,即使它只是在黑暗中的一枪,因为我真的很努力想出任何东西!

回答

13

The instructions given here允许我编译时没有错误。它归结为:

locate libcamlstr 

告诉我,libcamlstr可以在/usr/lib/ocaml(因人而异)中找到,所以我做的:

cd /usr/lib/ocaml 
sudo ln -s libcamlstr.a libstr.a 

然后我能够编译项目:

cd /usr/local/src/cil 
make clean && ./configure && make 
+0

什么是/ usr/local/src目录/ CIL makefile文件?我没有这个文件夹... –