web-dev-qa-db-ja.com

dyld:ライブラリがロードされていません:/usr/local/lib/libmpfr.4.dylib

プロジェクトで「make」を実行すると、次のエラーが表示されます。

dyld: Library not loaded: /usr/local/lib/libmpfr.4.dylib 
Referenced from: /Users/Petrov/Downloads/mips/bin/../libexec/gcc/mipsel-elf/4.8.1/cc1
  Reason: image not found

libmpfr.4.dylibには/usr/local/libファイルはありませんが、libmpfr.6.dylibはあります。 mpfr 4.0.1がインストールされています。 Xcodeとmpfrを既に再インストールしようとしました。

18
Elizabeth Haker

Macでも同様の問題がありました。 brewを使用して「gawk」をアップグレードすることで修正しました

brew upgrade gawk
46
Utpal Kumar

このように解決しました。

ln -s /usr/local/opt/mpfr/lib/libmpfr.6.dylib /usr/local/opt/mpfr/lib/libmpfr.4.dylib
5
neosarchizo

エラーの原因は、MPFR 3.1.xからMPFR 4.0.xにアップグレードしたことです。これは、MPFR 3.1.xとABI互換ではありません(MPFR 4.0.xライブラリは、MPFR 3.1.xに対してコンパイルされたプログラムでは使用できません) )。したがって、libmpfr.4.dylib(MPFR 3.0.xおよびMPFR 3.1.xで使用)からlibmpfr.6.dylib(少なくともMPFR 4.0.xで使用)への変更。

エラーを回避するために、MPFR 3.1.xからlibmpfr.4.dylibをアンインストールせずにMPFR 4.0.xをインストールすることです。すべての新しいコンパイル済みソフトウェアはMPFR 4.0.xおよびlibmpfr.6.dylibを使用しますただし、MPFRに依存する古いバイナリは、libmpfr.4.dylibを使用して実行できます(可能な例外は、libmpfr.4.dylibとlibmpfr.6の両方のライブラリを介して、MPFRに2つの異なる依存関係がある場合です。 dylibが必要になる場合がありますが、その場合は機能しない可能性があります)。

ここで、Xcodeを再コンパイルする必要があります。 Xcodeが既にコンパイルされている(バイナリパッケージから)場合は、MPFR 4.0.xに対してコンパイルされたもの、またはlibmpfr.4.dylibファイルを含むものを取得してください。これが不可能な場合は、MPFR 3.1.xを再インストールする必要があります。上記のように、libmpfr.4.dylibを削除せずにMPFR 4.0.xをインストールできるはずです。

2
vinc17

@ Vinc17は@neosarchizoの提案する解決策に対する彼のコメントで正しいです。異なるバージョン、[〜#〜] however [〜#〜]を参照する場合、シンボリックリンクは問題になる可能性があります。 :

locate libmpfr.4.dylib

別のディレクトリに適切なライブラリがあることを示しました。

/opt/local/lib/libmpfr.4.dylib

だから、私にとっては、シンボリックリンクのアプローチを使用することは完全に安全だと感じました:すなわち:

Sudo ln -s /opt/local/lib/libmpfr.4.dylib /usr/local/lib/libmpfr.4.dylib

おそらくハックですが、問題は解決しました。

2

システムツールチェーンを使用してコンパイルします。

export PATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH.
0
roidinev