gpt4 book ai didi

haskell - 为什么GHC 与gcc 和g++ 一起发布?

转载 作者:行者123 更新时间:2023-12-02 08:53:02 26 4
gpt4 key购买 nike

在 Windows 上,GHC 与 gcc 和 g++ 一起分发,例如在 ghc-7.6.3\mingw\bin 下。来自 download page ,在 Windows 二进制下载下还指出,Windows 版本“还包括对编译 C++ 文件的支持。”

我可以想象分发这些编译器只是为了方便,因为 Windows 没有附带任何编译器。我也可以想象这是使用 FFI 的必要,但我不是 100% 确定。例如,虽然 GHC 将使用它自己的 gcc/g++ 编译器来编译 .c 和 .cpp 文件,但 GHC 也 provides options选择您想要的编译器和链接器。事实上,你可以指定你自己的 gcc/g++ 并且它似乎可以工作。您甚至可以通过提前编译 .c/.cpp 文件,仅调用 GHC 来编译 Haskell 代码并使用 -pgml 链接它,从而进一步将 GHC 从循环中剔除(尽管总体效果与使用 -pgmc-pgml 相同)。

现在似乎可以工作,但是它是否依赖于您将-pgml-pgmc指定为以下版本的纯粹运气gcc 与 GHC 的想法兼容吗?换句话说,当我使用 FFI 时,我真的只能通过 GHC 调用来编译和链接所有内容吗?

最佳答案

GHC 通常与许多/多个版本的 GCC 兼容(当使用邪恶的 mangler 时会出现不兼容性)。

如果您尝试使用其他 C 编译器,您将遇到一些低级问题(标志、asm 格式)。

请注意,最近的 GHC 不推荐使用 C 后端,而转而使用 LLVM 后端,这对于日常 Haskell 开发来说有点没有意义。

关于haskell - 为什么GHC 与gcc 和g++ 一起发布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16682280/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com