当我在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包。
答案 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。