在Windows上,GHC与gcc和g ++一起发布,例如在ghc-7.6.3\mingw\bin.从下载页面,在Windows二进制下载中也注意到,Windows的构建"还包括对编译C++文件的支持."
我可以想象,分发这些编译器只是为了方便,因为Windows没有附带任何编译器.我还可以想象使用FFI 是必要的,但我不是百分百肯定的.例如,尽管GHC将使用它自己的gcc/g ++编译器编译.c和.cpp文件,但GHC还提供了选择所需编译器和链接器的选项.事实上,你可以指定自己的gcc/g ++,它似乎有效.你甚至可以切GHC圈外远一点的通过编译.C/.cpp文件提前,并且只调用GHC编译Haskell代码,并使用链接这一切-pgml(虽然整体效果是一样的使用-pgmc和-pgml) .
现在这似乎有效,但它是否依赖于您指定的纯运气-pgml并-pgmc成为与GHC所考虑的兼容的gcc版本?换句话说,当我使用FFI时,我真的只应该编译并用GHC调用链接所有内容吗?
Don*_*art 11
GHC通常与许多/几个版本的GCC兼容(使用邪恶的漫游者时会出现不兼容性).
如果您尝试使用其他C编译器,您将遇到一些低级别问题(标志,asm格式).
请注意,最近的GHC会弃用C后端而支持LLVM后端,这对于日常的Haskell开发来说有点没有用.
| 归档时间: |
|
| 查看次数: |
2524 次 |
| 最近记录: |