11

我正在尝试在 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,它停止抛出该特定错误,但开始抛出另一个错误Reference to undefined global 'Bigarray'(我需要设置。

任何帮助都非常感谢,即使它只是在黑暗中拍摄,因为我真的很难想出任何东西!

4

3 回答 3

16

这里给出的说明允许我编译没有错误。它归结为:

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
于 2012-11-27T13:23:07.773 回答
3

你可以从

-lstr

-lcamlstr
于 2014-06-20T14:13:52.557 回答
2

请参阅 OCaml 错误跟踪器中此错误的最后一条评论:

错误 5247

于 2012-11-27T15:33:05.177 回答