我用opam install llvm安装了llvm模块,并检查是否正确创建了库。然而,当我尝试使用它时,我得到了Error: Unbound module Llvm错误。
a@prosseek Chapter3> ocaml llvm.cma
Cannot find file llvm.cma. 可能出什么事了?
EDIT1
这就是我在命令行中执行命令时得到的结果。
a@prosseek Chapter4> eval `opam config env`
a@prosseek Chapter4> opam install llvm
[NOTE] Package llvm is already installed (current version is 3.2).
a@prosseek Chapter4> ocaml
OCaml version 4.01.0
# #require "llvm";;
Unknown directive `require'.
# open Llvm;;
Error: Unbound module Llvm来自http://projects.camlcity.org/projects/dl/findlib-1.3.1/doc/guide-html/quickstart.html。
# #use "topfind";;
- : unit = ()
Findlib has been successfully loaded. Additional directives:
#require "package";; to load a package
#list;; to list the available packages
#camlp4o;; to load camlp4 (standard syntax)
#camlp4r;; to load camlp4 (revised syntax)
#predicates "p,q,...";; to set these predicates
Topfind.reset();; to force that packages will be reloaded
#thread;; to enable threads
- : unit = ()
# #require "llvm";;
/Users/smcho/.opam/system/lib/llvm/.: added to search path
# #require "llvm";;system/lib/llvm/./llvm.cma: loaded
Error: The external function `llvm_global_succ' is not availableEdit2
cd /Users/smcho/.opam/system/lib/llvm
a@prosseek llvm> ocamlfind ocamlmktop -o llvmtop -thread -linkpkg -package llvm llvm.cma -cc g++
File "llvm.cma(Llvm)", line 1:
Warning 31: files llvm.cma(Llvm) and /Users/smcho/.opam/system/lib/llvm/./llvm.cma(Llvm) both define a module named Llvm
a@prosseek llvm> llvmtop
OCaml version 4.01.0
# #use "topfind";;
to enable threads
- : unit = ()
# #require "llvm";;
/Users/smcho/.opam/system/lib/llvm/.: added to search path
/Users/smcho/.opam/system/lib/llvm/./llvm.cma: loaded
# open Llvm;;但是,我不知道如何使它与ocaml一起工作,而不是使用llvmtop。这个站点有关于顶层循环- http://projects.camlcity.org/projects/dl/findlib-1.3.1/doc/guide-html/quickstart.html的信息。
发布于 2014-01-03 07:45:57
我被你代码中的符号Chapter3>弄糊涂了。你从哪里弄到的?是某种顶级的东西吗?将模块加载到托普莱尔的一般程序是:
$ eval `opam config env`
$ opam install llvm
$ ocaml
# #use "topfind";;
# #require "llvm";;
# open Llvm;;更新自定义层包含一些C函数,这些函数没有加载到默认的OCaml toplevel中。它们和它有联系。我认为,如果将-verbose选项添加到ocamlfind调用中,您将看到一些特定于LLVM的链接选项。
https://stackoverflow.com/questions/20895477
复制相似问题