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

11

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

我已经安装了OCaml(v3.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或引用。

非常感谢任何帮助,即使只是瞎猜,因为我真的很难想出任何东西!

3个回答

16

这里提供的指示 让我能够无误地编译。关键步骤如下:

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

3

您可以直接修改makefile文件,将下列代码:

-lstr

to

-lcamlstr

2
在OCaml错误跟踪器中查看此错误的最后一条评论: 错误 5247

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接