Я пытаюсь использовать привязки LLVM на Haskell для создания очень простого автономного приложения «Привет, мир».Идея заключается в том, что когда я запускаю свое приложение на Haskell, оно выдает некоторый байт-код, который, в свою очередь, может быть запущен и выдает «hello world!»
-- hellofunc prints out "hello world"
hellofunc :: CodeGenModule (Function (IO ()))
_main :: (Function (IO ())) -> CodeGenModule (Function (IO ()))
_main func = createNamedFunction ExternalLinkage "main" $ do
call func
ret ()
main = writeCodeGenModule "hello.bc" (liftA _main hellofunc)
Когда я запускаю это, я вижу следующую ошибку:
'main' function not found in module.
Я явно создаю функцию main
, используя createNamedFunction
.Чего мне не хватает?