Lorsque j'exécute "make" sur un projet, j'obtiens cette erreur:
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
Il n'y a pas libmpfr.4.dylib
fichier dans /usr/local/lib
, mais il y a libmpfr.6.dylib
. J'ai installé mpfr 4.0.1. J'ai déjà essayé de réinstaller Xcode et mpfr.
J'ai eu un problème similaire sur Mac. Je l'ai corrigé en améliorant le "gawk" en utilisant brew
brew upgrade gawk
Je l'ai résolu comme ça.
ln -s /usr/local/opt/mpfr/lib/libmpfr.6.dylib /usr/local/opt/mpfr/lib/libmpfr.4.dylib
La cause de l'erreur est que vous avez effectué une mise à niveau de MPFR 3.1.x vers MPFR 4.0.x, qui est incompatible avec ABI avec MPFR 3.1.x (une bibliothèque MPFR 4.0.x ne peut pas être utilisée avec un programme compilé avec MPFR 3.1.x ). D'où le passage de libmpfr.4.dylib (utilisé pour MPFR 3.0.x et MPFR 3.1.x) à libmpfr.6.dylib (utilisé pour MPFR 4.0.x au moins).
Ce que vous auriez dû faire à la place, afin d'éviter l'erreur, est d'installer MPFR 4.0.x sans désinstaller libmpfr.4.dylib de MPFR 3.1.x: tous les nouveaux logiciels compilés utiliseraient MPFR 4.0.x et libmpfr.6.dylib , mais des binaires plus anciens dépendant de MPFR auraient toujours pu s'exécuter en utilisant libmpfr.4.dylib (une exception possible est lorsqu'il y a deux dépendances différentes sur MPFR, via des bibliothèques, où libmpfr.4.dylib et libmpfr.6. dylib pourrait être nécessaire, auquel cas cela pourrait ne pas fonctionner).
Maintenant, vous devez recompiler Xcode. Si vous obtenez déjà Xcode compilé (à partir d'un package binaire), assurez-vous d'en obtenir un compilé avec MPFR 4.0.x ou un fichier qui inclut le fichier libmpfr.4.dylib. Si cela n'est pas possible, vous devez réinstaller MPFR 3.1.x. Ensuite, vous devriez pouvoir installer MPFR 4.0.x sans supprimer libmpfr.4.dylib, comme indiqué ci-dessus.
@ Vinc17 a raison dans son commentaire sur la solution proposée par @ neosarchizo, les liens symboliques peuvent être problématiques si vous faites référence à une version différente, CEPENDANT , dans mon cas, exécutez la commande suivante :
locate libmpfr.4.dylib
A montré que j'avais la bonne bibliothèque dans un répertoire différent:
/opt/local/lib/libmpfr.4.dylib
Donc pour moi, je pensais qu'il était parfaitement sûr d'utiliser l'approche symlink, c'est-à-dire:
Sudo ln -s /opt/local/lib/libmpfr.4.dylib /usr/local/lib/libmpfr.4.dylib
Probablement un hack, mais problème résolu.
Utilisez les chaînes d'outils système pour compiler:
export PATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH.