在使用LLVM编译haskell生成的位代码文件中找不到Main函数

在使用LLVM编译haskell生成的位代码文件中找不到Main函数,haskell,llvm,ghc,llvm-ir,klee,Haskell,Llvm,Ghc,Llvm Ir,Klee,我想在通过使用ghc前端和llvm后端编译haskell文件生成的.bc文件上运行klee 我的haskell hello.hs文件中有以下代码: main = putStrLn "Hello World!" 我使用以下命令使用ghc编译hello.hs ghc -fllvm -keep-llvm-files -force-recomp -hello.hs 它将与其他文件一起生成hello.ll文件。然后我尝试将这个.ll文件编译成一个.bc文件 llvm-as hello.ll -o he

我想在通过使用ghc前端和llvm后端编译haskell文件生成的.bc文件上运行klee

我的haskell hello.hs文件中有以下代码:

main = putStrLn "Hello World!"
我使用以下命令使用ghc编译hello.hs

ghc -fllvm -keep-llvm-files -force-recomp -hello.hs
它将与其他文件一起生成hello.ll文件。然后我尝试将这个.ll文件编译成一个.bc文件

llvm-as hello.ll -o hello.bc
问题是,当我尝试在.bc文件上运行klee或lli时,我得到以下错误

main function not found in module error

我在docker上运行ghc和llvm。我有llvm的3.4版和ghc的7.6.3版。

与许多现代语言一样,该语言中的定义不能转换为位码或对象文件中的相同声明。阅读.ll并查看。尝试添加
module Main,其中
作为Haskell文件的第一行。@ja添加module Main不起作用。正常运行时,Haskell很可能会将
Main
函数链接到程序中。找到一种方法来手动链接它,或者找到一种方法来创建自己的自定义主函数。另请参见:人们在生锈方面遇到的类似问题:。另请参见: