微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Haskell ghc编译/链接错误,不创build可执行文件 Linux的

我用haskel编写了一个基本的hello世界程序,并试着用ghc filename.hs来编译它。 它生成.hi和.o文件,但没有可执行文件,并在链接器中显示错误

marox @ IT-marox:〜/ Marox $ ghc tupel.hs

链接tupel …

/ usr / bin / ld:–hash-size = 31:未知选项

/ usr / bin / ld:使用–help选项来获取使用信息

collect2:ld返回1退出状态

谷歌search没有返回任何有用的信息。

我在Ubuntu的12.04。

g ++ -D标志是做什么的?

在Windows 7中设置MinGW来编译足够可移植的C ++代码

MinGW Windows.h不编译

PHP扩展编译为非线程安全的

Linux新手问题:GCC编译器输出

我怎样才能解决这个问题?

在C中链接文件/头文件

在linux下用mingw编译opengl

部署使用C ++开发的应用程序

Matlab UI程序在deploytool后工作不正常

ffmpeg与libsoxrparsing依赖关系

你有没有安装binutils-gold ? 如果是的话,这是问题(因为黄金链接不支持--hash-size AFAIK)。

可能的解决方案:

去除黄金

你的ld可能链接到ld.gold ,所以把链接改为ld.ld

告诉haskell编译器显式地使用-pgml选项使用哪个链接器: ghc -pgml ld.ld tupel.hs

从源代码安装ghc ,因为ghc的配置脚本会--hash-size ghc所以它不会使用--hash-size

根据您的ghc版本,您可以在ghc的设置文件/usr/lib/ghc-your.ghc.version/settings调整链接器设置

更新 – Ubuntu 12.10上的金似乎将GNU ld移动到ld.bfd。 为了解决这个问题,我按照建议删除了ld链接,并重新链接

ln -s ld.bfd ld

ghc汇编正在进行中。

(无法看到如何破坏usr / lib / ghc中的设置文件,因为条目是通过其命令行传递给ld的gcc的条目,虽然这将是我的首选选项,以防其他情况需要ld为它的方式。)

多亏了Dominic的指点,在哪里看! 这让我疯狂…

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐