我尝试在ocaml中使用llvm绑定,在我的文件test.ml中,我有一行代码:
open Llvm
当我运行该命令时
ocamlbuild -use-ocamlfind test.byte -package llvm
我得到的结果是:
+ ocamlfind ocamldep -package llvm -modules test.ml > test.ml.depends
ocamlfind: Package `llvm' not found
Command exited with code 2.
Compilation unsuccessful after building 1 target (0 cached) in 00:00:00.
我在这方面做错了什么?谢谢。
顺便说一句,_tag文件包含:
"src": traverse
<src/{lexer,parser}.ml>: use_camlp4, pp(camlp4of)
<*.{byte,native}>: g++, use_llvm, use_llvm_analysis
myocamlbuild.ml包含:
open Ocamlbuild_plugin;;
ocaml_lib ~extern:true "llvm";;
ocaml_lib ~extern:true "llvm_analysis";;
flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"]);;
发布于 2018-06-01 03:46:57
我不知道为什么你使用的指令如此复杂。如果您是通过opam安装的,那么在OCaml中使用llvm绑定并不需要做任何类似的事情。
下面是食谱:
通过opam安装llvm绑定。
它可以像这样简单
opam install llvm
但是,opam可能会尝试安装您的系统上不可用的最新版本,因此请选择您已有的特定版本,并执行以下操作(假设您有llvm-3.8
):
opam install conf-llvm.3.8
opam install llvm --criteria=-changed
( -criteria
标志将阻止opam将conf-llvm升级到最新版本)
一旦它成功了,您就可以轻松地编译您的程序,而不需要任何额外的搭建。
创建并构建您的项目
mkdir llvm-project cd llvm-project
cat >test.ml<
ocamlbuild -pkgs llvm,llvm.bitreader test.byte
或到本机代码
ocamlbuild -pkgs llvm,llvm.bitreader test.native
./test.native mycode.bc
https://stackoverflow.com/questions/50548547
复制相似问题