2011-12-18 15 views
2

ghc --makeを使って実行可能ファイルをコンパイルしようとするたびに、エラーがなくても後でプログラムを実行しようとすると、次のエラーが発生します。コンパイル:GHC - 奇妙な動的リンカーエラー(libffi.so.4)

./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の代わりにこれらの1つを使用させるにはどうすればいいですか?

+0

GHCはどのようにインストールしましたか? Ubuntu 11.10では、通常はlibffi.so.5とlibffi.so.6が出荷されるので、間違った動的ライブラリとリンクしているようです。 –

+0

私は実際にパッケージマネージャーにインストールしました。どういうわけか、どこかで設定が間違っていたと思います。私はちょうど今のところ再インストールしようと思います。 – Cubic

答えて

1

私はlibffi.so.5をコピーしてlibffi.so.4に名前を変更することで今修正されています - ちょっと汚れたハックですが、今はバイナリを配布するつもりはないので気にしませんそれが動作する限り。誰かが私にもっと良い解決策を見せることができたら私はまだ好きですが。

+1

同じように、コピーするのではなく、シンボリックリンクを作成するだけです。つまり、ln -s /usr/lib/libffi.so.5 /usr/lib/libffi.so.4 – tmatth

+0

私はまだかなり新しいUbuntuに伝えて、これを知らなかった。新しいバージョンではこのような問題はありませんでした。 – Cubic