OCaml编译错误:/ usr / bin / ld:找不到-lstr

我试图在Ubuntu 64机器上编译MEGAM Ocaml库的源代码。

我安装了OCaml(v 3.12.1),使用sudo apt-get install ocaml

在解压缩的源代码中运行terminal中的“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或参考。

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

这里给出的指示允许我编译没有错误。 归结为:

 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 

查看OCaml错误跟踪器中此错误的最新评论:

错误5247

您可以从中更改生成文件

 -lstr 

 -lcamlstr