[英]Haskell ghc compiling/linking error, not creating executable. (linux)
我在haskel中編寫了一個基本的hello world程序,並嘗試使用: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退出狀態
谷歌搜索沒有返回任何有用的信息。
我在ubuntu 12.04。
我怎樣才能解決這個問題?
你裝binutils-gold
了嗎? 如果是,那就是問題(因為黃金鏈接器不支持--hash-size
AFAIK)。
可能的解決方案:
ld
可能鏈接到ld.gold
,所以將符號鏈接更改為ld.ld
-pgml
選項明確告訴haskell編譯器使用哪個鏈接器: ghc -pgml ld.ld tupel.hs
ghc
從源代碼,因為配置腳本ghc
會再建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指向哪里看! 這讓我發瘋了......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.