LLVM OCaml绑定

29

我正在开发 llvm 的 OCaml 绑定。

我通过 opam 安装了 llvm 包 (opam install llvm),但是当我在 utop 中使用 llvm 时,出现了以下错误:

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

opam的llvm版本是3.2。

我还尝试从官方网站构建llvm3.3(./configure --with-ocaml-libdir='ocamlc -where'),构建成功了(所有llvm命令行工具都在工作),但我在utop中得到了相同的错误。

我的电脑是Mac OS 10.7.5。


编辑:问题已解决...

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

然后启动llvmtop,在open Llvm之后,您可以使用llvm绑定。

我还没有找到与utop等价的解决方法...


编辑2:现在utop正常运行了!

感谢这里utop文档。

  1. 创建一个myutop_main.ml文件:

    let () = UTop_main.main ()

  2. 用llvm绑定创建自定义的utop

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


8
既然您已经自己解决了问题,请将解决方法从问题中移至答案,并接受它,以便标记此问题已得到解答。 - Misha Brukman
@xysun - 你能否将你在上面提出的问题中的答案剪切并粘贴到一个答案中,然后将其标记为已回答?这样它就会从“未回答的问题”列表中移除。非常感谢。 :-) - Greenonline
1个回答

3

(因为我被要求回答自己的问题...)

使用系统toplevel

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

然后启动llvmtop,在open Llvm之后,您可以使用llvm绑定。

目前我还没有找到与utop相应的等效方法...


使用utop

感谢utop文档 这里

  1. 创建一个myutop_main.ml文件:

    let () = UTop_main.main ()

  2. 使用llvm绑定创建自定义utop

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


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