Я переключился на свой Mac и больше не имею эту проблему, но имею аналогичную. OCaml llvm "Unbound module ExecutionEngine"ocaml llvm kaleidoscope учебник «Unbound module LlvmExecutionEngine»
Я пытаюсь получить эту работу: https://github.com/llvm-mirror/llvm/tree/master/examples/OCaml-Kaleidoscope/Chapter7
из этого учебника http://llvm.org/docs/tutorial/OCamlLangImpl7.html
(я 99% уверен, что эти два являются одними и теми же людьми)
После обойти несколько проблем, я достиг камнем преткновения за последние несколько часов
[email protected]:~/Desktop/llvm-master/examples/OCaml-Kaleidoscope/Chapter7$ ocamlbuild -use-ocamlfind toy.byte -package llvm llvm_executionengine
Finished, 0 targets (0 cached) in 00:00:00.
File "_tags", line 4, characters 41-53:
Warning: the tag "use_bindings" is not used in any flag declaration, so it will have no effect; it may be a typo. Otherwise use `mark_tag_used` in your myocamlbuild.ml to disable this warning.
+ ocamlfind ocamlc -c -package llvm -o toplevel.cmo toplevel.ml
File "toplevel.ml", line 6, characters 5-24:
Error: Unbound module LlvmExecutionEngine
Command exited with code 2.
Compilation unsuccessful after building 13 targets (12 cached) in 00:00:00.
Я уверен, что llvm_executionengine - это правильный пакет, как будто я пытаюсь что-то еще сказать, что он не знает, какой пакет он есть.
Вот это верхние несколько строк кода с линией ошибки:
(*===----------------------------------------------------------------------===
* Top-Level parsing and JIT Driver
*===----------------------------------------------------------------------===*)
open Llvm
open Llvm_executionengine
(* top ::= definition | external | expression | ';' *)
let rec main_loop the_fpm the_execution_engine stream =
match Stream.peek stream with
| None ->()
Любая помощь будет супер!
Я попробовал первую часть ответа tobiasBora и получил этот результат:
$ ocamlbuild -use-ocamlfind test.byte -package llvm
Finished, 0 targets (0 cached) in 00:00:00.
File "_tags", line 4, characters 41-53:
Warning: the tag "use_bindings" is not used in any flag declaration, so it will have no effect; it may be a typo. Otherwise use `mark_tag_used` in your myocamlbuild.ml to disable this warning.
Solver failed:
Ocamlbuild cannot find or build test.ml. A file with such a name would usually be a source file. I suspect you have given a wrong target name to Ocamlbuild.
Compilation unsuccessful after building 0 targets (0 cached) in 00:00:00.
Ошибка говорит «Освобожденный модуль LlvmExecutionEngine», но вы открываете LLvm_executionengine. Один из них должен быть ошибочным. – camlspotter
@camlspotter Я думал, что это была просто странная проблема с именем. У вас есть другой совет для меня, потому что я очень смущен, что проблема, если, как вы указали, ошибка не соответствует открытому звонку. – Bren
@Bren Вы уверены, что искали подходящий файл? Возможно, вы смотрите на файл toplevel.ml в одном каталоге, но ocamlfind компилирует toplevel.ml в другой каталог, где он говорит 'open LlvmExecutionengine'. – sepp2k