我试图在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