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

В файле /usr/local/lib отсутствует файл libmpfr.4.dylib, но есть libmpfr.6.dylib. У меня установлен mpfr 4.0.1. Я уже пытался переустановить Xcode и mpfr.

Ответы

Ответ 1

У меня была аналогичная проблема в Mac. Я исправил его, обновив "gawk", используя варево

brew upgrade gawk

Ответ 2

Я решил это так.

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

Ответ 3

@Vinc17 прав в своем комментарии к @neosarchizo, предлагаемому solutiion, символические ссылки могут быть проблематичными, если ссылаются на другую версию, ОДНАКО, в моем случае, выполнив следующую команду:

locate libmpfr.4.dylib

Показано, что у меня была правильная библиотека в другом каталоге:

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

Поэтому для меня, я чувствовал, что совершенно безопасно использовать подход symlink, то есть:

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

Вероятно, взлом, но проблема решена.

Ответ 4

Причиной ошибки является то, что вы обновили с MPFR 3.1.x до MPFR 4.0.x, который является ABI-несовместимым с MPFR 3.1.x (библиотека 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 4.0.x, не удаляя libmpfr.4.dylib из MPFR 3.1.x: все новое скомпилированное программное обеспечение будет использовать MPFR 4.0.x и libmpfr.6.dylib, но старые двоичные файлы в зависимости от MPFR все равно могли бы работать с помощью libmpfr.4.dylib (возможное исключение - это когда есть две разные зависимости от MPFR, через библиотеки, где оба libmpfr.4.dylib и libmpfr.6. может потребоваться dylib, и в этом случае это может не сработать).

Теперь вы должны перекомпилировать Xcode. Если вы получите Xcode, уже скомпилированный (из двоичного пакета), убедитесь, что вы либо скомпилировали его с MPFR 4.0.x, либо тот, который содержит файл libmpfr.4.dylib. Если это невозможно, вам следует переустановить MPFR 3.1.x. Тогда вы должны иметь возможность установить MPFR 4.0.x без удаления libmpfr.4.dylib, как указано выше.

Ответ 5

Используйте системные наборы инструментов для компиляции:

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