Я пытаюсь запустить битовый код LLVM, сгенерированный из исходного кода Haskell, вместо того, чтобы компилировать код в собственный двоичный файл на macOS.
У меня есть следующий файл:
$ cat hello_world.hs
main =
putStrLn "Hello world!"
И я использую следующие шаги для создания файла .bc
:
$ brew install stack
$ brew install llvm@6
$ stack ghc -- -keep-llvm-files hello_world.hs
$ clang -c -emit-llvm hello_world.ll -o hello_world.bc
Когда я сейчас пытаюсь запустить его, я получаю следующую ошибку:
$ lli hello_world.bc
'main' function not found in module.
Когда я устанавливаю -fllvm
для компиляции в собственный двоичный файл через LLVM, все работает, так что это не проблема с моей настройкой LLVM. Как это можно исправить?
cc 10
, которое отличается от стандартного C. Чтобы на самом деле запустить этот код LLVM, вы должны предоставить RTS, возможно, связать его (я точно не знаю, как именно) и сделать подходящий вызов вашего кода Haskell. - person chi   schedule 27.05.2019