llvm OCaml bindings

旧巷老猫 提交于 2019-12-21 03:13:39

问题


I'm working on llvm OCaml bindings.

I installed llvm package through opam (opam install llvm), when I use llvm in utop, I get the following error:

#require "llvm";;
Error: The external function 'llvm_global_succ' is not available. 

The opam llvm version is 3.2.

I also tried building llvm3.3 from the official site (./configure --with-ocaml-libdir='ocamlc -where'), the build was successful (all the llvm command-line tools are working), but I got the same error in utop.

I'm on Mac OS 10.7.5.


Edit: I solved it..

ocamlmktop -o llvmtop llvm.cma -cc g++

Then launch llvmtop, you can use llvm bindings after open Llvm.

I haven't found an equivalent for utop yet..


Edit2: Now utop is working!

Thanks to the utop documentation here

  1. create a myutop_main.ml file:

    let () = UTop_main.main ()

  2. create a custom utop with llvm bindings:

    ocamlfind ocamlmktop -o llvmutop -thread -linkpkg -package utop -package llvm myutop_main.ml -cc g++


回答1:


(as I'm asked to answer my own question...)

To use system toplevel

ocamlmktop -o llvmtop llvm.cma -cc g++

Then launch llvmtop, you can use llvm bindings after open Llvm.

I haven't found an equivalent for utop yet..


To use utop

Thanks to the utop documentation here

  1. create a myutop_main.ml file:

    let () = UTop_main.main ()

  2. create a custom utop with llvm bindings:

    ocamlfind ocamlmktop -o llvmutop -thread -linkpkg -package utop -package llvm myutop_main.ml -cc g++



来源:https://stackoverflow.com/questions/20002608/llvm-ocaml-bindings

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!