无法在OCaml中加载LLVM绑定

时间:2017-07-10 04:55:01

标签: ubuntu ocaml llvm

当我在OCaml REPL中#require "llvm";;时,我得到: Reason: dllllvm.so: dllllvm.so: cannot open shared object file: No such file or directory.

我正在运行Ubuntu 16.04 LTS,其中包含从官方LLVM apt repo和" llvm"安装的所有必需LLVM deb软件包。从OPAM安装的OCaml包。

1 个答案:

答案 0 :(得分:1)

显然,OCaml与LLVM的绑定在顶层不起作用。免责声明,我没有亲自尝试,我只是阅读安装脚本。安装脚本包含以下three lines

cp "${libdir}"/llvm/*.a $1
mv "${libdir}"/llvm/*.cma $1
mv "${libdir}"/llvm/*.cmxa $1

这意味着,未安装共享库,因此无法将llvm库动态加载到顶层。

我真的不知道这是一个问题还是一个限制,你可以尝试联系维护者,并寻求帮助/澄清。使用opam show llvm | grep author命令获取其邮件地址。

看起来3.8版本没有这个问题,所以你可以尝试安装这个版本(它在Xenial上可用),并安装opam的绑定:

opam install llvm.3.8

另一种解决方案是构建自定义OCaml顶层。可能最简单的方法是使用ocamlbuild。