Ore*_*lom 5 c haskell compilation
我必须遵循Haskell程序,我正在尝试编译为C.我已经看过这个SO帖子,但无法在那里得到答案.
quicksort [] = []
quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater)
where
lesser = filter (< p) xs
greater = filter (>= p) xs
main = print(quicksort([5,2,1,0,8,3]))
Run Code Online (Sandbox Code Playgroud)
这是我试过的:
$ ghc -C main.hs
Run Code Online (Sandbox Code Playgroud)
而我得到的是:
ghc: the option -C is only available with an unregisterised GHC
Usage: For basic information, try the `--help' option.
Run Code Online (Sandbox Code Playgroud)
这有点奇怪,因为当我看到帮助时,我看到了这个:
-C生成C(.hc输出)后停止
这种选择很古老。
多年前,GHC 曾经通过 C 进行编译,但在正常情况下不再这样做。gcc现在 GHC 不再生成 C 代码并使用 编译它,而是使用它自己的本机代码生成器(或 LLVM)。
从技术上讲,可以将 GHC 本身编译为“未注册”以重新启用该选项。这需要从其源代码中自定义构建 GHC。然而,这将产生相当低效的 C 代码。实际上,只有在交叉编译或将 GHC 移植到新架构时才会这样做。