1

我在这里发了一个帖子(ocaml llvm kaleidoscope 教程“Unbound module LlvmExecutionEngine”),但我切换到的 Mac 上似乎不存在这个问题。

我试图让它工作: https ://github.com/llvm-mirror/llvm/tree/master/examples/OCaml-Kaleidoscope/Chapter7

来自本教程 http://llvm.org/docs/tutorial/OCamlLangImpl7.html

(我 99% 确定这两个是同一个人)

在解决了几个问题之后,我在过去几个小时内遇到了一个绊脚石

dyn-160-39-160-188:Chapter7 me$ ocamlbuild -use-ocamlfind toy.byte -package llvm llvm_executionengine
Finished, 0 targets (0 cached) in 00:00:00.
+ ocamlfind ocamlc -c -package llvm -o toplevel.cmo toplevel.ml
File "toplevel.ml", line 37, characters 25-53:
Error: Unbound module ExecutionEngine
Command exited with code 2.
Compilation unsuccessful after building 13 targets (12 cached) in 00:00:00.

我很确定 llvm_executionengine 是正确的包,就好像我尝试了其他东西一样,它说它不知道它是什么包。

这是有错误的代码行:

    (* JIT the function, returning a function pointer. *)
    let result = ExecutionEngine.run_function the_function [||] (*this line*)
      the_execution_engine in

    print_string "Evaluated to ";
    print_float (GenericValue.as_float Codegen.double_type result); 

任何帮助都会很棒!

4

1 回答 1

1

ocamlfind 的 CLI 不能这样工作。-package llvm -package llvm.execution应该管用。

于 2016-05-05T21:52:58.010 回答