【问题标题】:GHC - getting weird dynamic linker errors (libffi.so.4)GHC - 出现奇怪的动态链接器错误 (libffi.so.4)
【发布时间】:2011-12-18 16:21:31
【问题描述】:

每当我尝试使用 ghc --make 编译可执行文件时,之后尝试执行程序时都会收到以下错误,尽管编译时没有错误:

./main: error while loading shared libraries: libffi.so.4: cannot open shared object  file: No such file or directory

(不过,如果我将程序加载到 ghci 中,它就可以正常工作)

这是一个最小的示例程序,以前可以工作,但现在不行(我不知道为什么)

module Main(main)
where

main = do c <- getContents
          putStr c

我在 Ubuntu 11.10 上使用 GHC 7.0.3。帮助将不胜感激。

更新:从包管理器中删除和重新安装也没有修复它。我确实有 libffi5 和 libffi6,如何让 ghc 使用其中之一而不是 libffi4?

【问题讨论】:

  • 您是如何安装 GHC 的?在 Ubuntu 11.10 上,通常会发布 libffi.so.5 和 libffi.so.6,因此您似乎链接到了错误的动态库。
  • 我实际上只是在包管理器中安装了一个。我想某些设置在某个地方出了问题。我想我现在只是尝试重新安装。

标签: haskell ghc


【解决方案1】:

我现在通过复制 libffi.so.5 并将副本重命名为 libffi.so.4 来修复它 - 有点脏,但由于我现在不打算分发二进制文件,所以我真的不介意只要它有效。虽然我仍然希望有人能够向我展示更好的解决方案。

【讨论】:

  • 同样,你可以只创建一个符号链接而不是复制,即 ln -s /usr/lib/libffi.so.5 /usr/lib/libffi.so.4跨度>
  • 当时我对 Ubuntu 还是很陌生,并不知道这一点。在较新的版本上没有这样的问题。
猜你喜欢
  • 1970-01-01
  • 2013-09-10
  • 2011-04-04
  • 1970-01-01
  • 2010-12-30
  • 1970-01-01
  • 1970-01-01
  • 2017-01-02
相关资源
最近更新 更多