2017-07-10 4 views
0

laden Als ich #require "llvm";; in der OCaml REPL ich: Reason: dllllvm.so: dllllvm.so: cannot open shared object file: No such file or directory. Kann nicht LLVM Bindungen in OCaml

Ich bin mit Ubuntu 16.04 LTS mit allen erforderlichen LLVM deb aus der offiziellen LLVM apt-Repo installierten Pakete und die " llvm "OCaml Paket von OPAM installiert.

Antwort

1

Offenbar funktionieren OCaml-Bindungen zu LLVM nicht in der obersten Ebene. Disclaimer, ich habe es nicht selbst versucht, ich lese gerade das Installationsskript. Das Installationsskript enthält die folgenden three lines:

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

Das bedeutet, dass die gemeinsam genutzte Bibliothek nicht installiert ist, damit es nicht möglich ist, die llvm Bibliothek dynamisch in das Top-Level zu laden.

Ich weiß nicht wirklich, ob es ein Problem oder eine Einschränkung ist, Sie können versuchen, den Betreuer zu kontaktieren und um Hilfe/Klärung bitten. Verwenden Sie den Befehl opam show llvm | grep author, um seine E-Mail-Adresse abzurufen.

Es sieht aus wie, dass die 3.8-Version dieses Problem nicht haben, so können Sie diese Version zu installieren versuchen können (es ist auf Xenial verfügbar) und die Bindungen von OPAM installieren:

opam install llvm.3.8 

Ein Alternative Lösung für Sie wäre, eine benutzerdefinierte OCaml Toplevel zu erstellen. Wahrscheinlich wäre der einfachste Weg, ocamlbuild dafür zu verwenden.