web-dev-qa-db-fra.com

dyld: la bibliothèque n'est pas chargée: /usr/local/lib/libpng16.16.dylib avec quelque chose en rapport avec php

L'utilisation de n'importe quelle application php entraîne:

dyld: Library not loaded: /usr/local/lib/libpng15.15.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
[1]    4494 trace trap  php

La plupart de mes applications php ont été installées avec homebrew à l'exception de composer (installé avec curl)

J'ai essayé d'enlever le libpng et de réinstaller avec homebrew en vain.

Suivant était de passer à la dernière version de libpng 1.5 comme indiqué dans le message d'erreur:

$ brew info libpng
libpng: stable 1.6.10 (bottled) 
http://www.libpng.org/pub/png/libpng.html
/usr/local/Cellar/libpng/1.5.17 (15 files, 1.0M)
Poured from bottle
/usr/local/Cellar/libpng/1.5.18 (15 files, 1.0M)
Poured from bottle
/usr/local/Cellar/libpng/1.6.10 (17 files, 1.3M) *

$ brew switch libpng 1.5.18
Cleaning /usr/local/Cellar/libpng/1.5.17
Cleaning /usr/local/Cellar/libpng/1.5.18
Cleaning /usr/local/Cellar/libpng/1.6.10
16 links created for /usr/local/Cellar/libpng/1.5.18

Maintenant l'erreur est devenue:

dyld: Library not loaded: /usr/local/lib/libpng16.16.dylib
Referenced from: /usr/local/lib/libfreetype.6.dylib
Reason: image not found
[1]    6993 trace trap  phpunit

J'utilise Mavericks (10.9.2) et PHP 5.5.1.

Merci d'avance!

117
user3458861

Je vous suggère de courir:

$ brew update && brew upgrade

Jusqu'à il y a quelques minutes, j'avais également ce problème. Comme j'ai une version à jour PHP, je l'ai résolue avec:

$ brew reinstall php55

J'espère que ça t'as aidé.

151
Pera Jovic

J'ai suivi ce qui précède (ce n'est jamais une mauvaise idée de se tenir au courant de toute façon avec brasser) et j'ai toujours le même problème:

LAPTOP:folder Username$ php -v
dyld: Library not loaded: /usr/local/lib/libpng15.15.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
Trace/BPT trap: 5

Ensuite, j'ai trouvé un moyen plus simple:

Recherchez votre (vos) version (s) libpng sur votre boîte:

# Requires locate & updatedb for mac os x
# See Link [1] 
LAPTOP:folder Username$ locate libpng15.15.dylib
/Applications/GIMP.app/Contents/Resources/lib/libpng15.15.dylib
/usr/X11/lib/libpng15.15.dylib
/usr/local/Cellar/libpng/1.5.14/lib/libpng15.15.dylib

Faire un lien symbolique:

LAPTOP:folder Username$ ln -s /usr/local/Cellar/libpng/1.5.14/lib/libpng15.15.dylib /usr/local/lib/libpng15.15.dylib

Réessayer:

LAPTOP:folder Username$ php -v
PHP 5.3.26 (cli) (built: Aug 25 2013 16:07:23) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

1) équivalent de Mac OS X de localiser

42
phpguru

C'est parce qu'il n'y a pas de liens symboliques pour libpng. Vous devez relier libpng à nouveau.

brew unlink libpng && brew link libpng

Et vous pouvez avoir une erreur. J'ai corrigé cette erreur en corrigeant l'autorisation. C'est peut-être à cause de macports désinstallés.

Sudo chown -R yourid:staff /usr/local/share/man/

Créer un lien à nouveau et ça va marcher.

18
Jonghee Park

J'ai résolu ceci en le copiant dans le répertoire manquant:

cp /opt/X11/lib/libpng15.15.dylib /usr/local/lib/libpng15.15.dylib

brew réinstaller libpng a continué à installer libpng16, pas libpng15, alors j’ai été obligé de faire ce qui précède.

11
user391339

Dans mon cas, c'était libjpeg. Tout ce que j'avais à faire était de lancer brew reinstall libjpeg et tout fonctionnait!

8
saada

Juste au cas où quelqu'un d'autre se heurterait à ce problème, je l'ai résolu comme suit

brew update && brew upgrade # installs libpng 1.6

Cela causait une erreur avec d'autres paquets nécessitant 1.5 avec lesquels ils avaient été construits, alors je l'ai lié:

cd /usr/local/lib/
ln -s ../Cellar/libpng/1.5.18/lib/libpng15.15.dylib

Maintenant, ils vivent à la fois en harmonie et côte à côte pour les différents forfaits. Il serait préférable de reconstruire les packages qui dépendent de la version 1.5, mais cela fonctionne comme un correctif rapide du bandage.

4
Alex

Je sais que cette question a déjà une réponse qui donne une solution. Mais je veux vous donner mes deux sous pour aider les gens à comprendre le problème. Obtenir le même problème que j'ai créé ne question spécifique . J'ai le même problème, mais seulement avec PHPStorm. Et exactement quand j'essaye de faire un test avec l'éditeur.

dyld est l'éditeur de liens dynamique

Je sème que dyld était à la recherche de /usr/local/lib/libpng15.15.dylib mais il n'y en avait pas dans mon/usr/local/lib /. Dans ce dossier, j'ai libpng16.16.dylib.

Grâce à un commentaire, je comprends que mon/usr/bin/php est un pointeur sur php 5.5.8. Au lieu de cela, .../usr/local/bin/php était 5.5.14. PHPStorm a travaillé avec/usr/bin/php, ce qui correspond à la configuration par défaut. Quand je lance php via la console, je lance/urs/local/bin/php.

Donc, ... Si vous obtenez une erreur dyld, peut-être avez-vous une mauvaise configuration php. C'est la raison parce que

$ brew update && brew upgrade
$ brew reinstall php55

Mais je ne sais pas pourquoi cela ne résout pas le problème pour moi. Peut-être parce que j'ai

3
sensorario

J'ai eu beaucoup de mal avec cette erreur:

Motif: Version de bibliothèque incompatible: php requiert la version 44.0.0 ou ultérieure, mais libpng16.16.dylib fournit la version 42.0.0 Traçabilité/interruption BPT: 6

J'ai fait toutes les choses ci-dessus avec de la bière et bien plus encore ... mais ce n'était pas ça!

Vérifiez où se trouve votre bibliothèque:

Sudo trouver/-nom libpng16.16.dylib

Dans mon cas, voici le résultat pertinent:

  • /usr/local/lib/libpng16.16.dylib
  • /usr/local/Cellar/libpng/1.6.34/lib/libpng16.16.dylib
  • /Applications/MAMP/Library/lib/libpng16.16.dylib
  • /opt/X11/lib/libpng16.16.dylib

Donc, comme je suis un utilisateur de MAMP, il s’avère que l’erreur est apparue alors que je tentais de mettre à jour de PHP 7.1.0 à 7.1.8 ( le dernier MAMP php disponible ) Symfony4 nécessite au moins 7.1.3

Finalement, j'ai installé la nouvelle version de MAMP et cela a fonctionné (4.1 à 4.2). Cependant, soyez prudent lorsque vous faites cela, vous devez d'abord sauvegarder tout ce qui se trouve dans votre dossier MAMP/htdoc. Conservez également une copie de votre version php personnalisée compilée que celle disponible dans MAMP/bin/php. (Dans mon cas, j'avais une version spéciale PHP avec des pilotes Oracle).

De plus, si vous avez configuré la version php de MAMP pour être votre interprète php CLI, vous devrez mettre à jour le chemin PATH dans votre fichier .bash_profile.

Ça devrait ressembler a quelque chose comme ca :

export PATH =/Applications/MAMP/bin/php/php7.1.8/bin: $ PATH

J'espère que cela peut aider.

1
Kaizoku Gambare

J'ai également eu ce problème, et aucune des solutions de ce fil n'a fonctionné pour moi. Il se trouve que le problème était que j'avais cette ligne dans ~/.bash_profile:

alias php="/usr/local/php/bin/php"

Et il s'avère que /usr/local/php n'était qu'un lien symbolique vers /usr/local/Cellar/php54/5.4.24/. Ainsi, quand j'ai appelé php -i, j'appelais toujours php54. Je viens de supprimer cette ligne de mon profil bash, puis php a fonctionné.

Pour une raison quelconque, même si php55 était en cours d'exécution, le fichier php.ini de php54 était toujours chargé, et j'ai reçu cet avertissement chaque fois que j'ai invoqué php:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php54/5.4.38/lib/php/extensions/no-debug-non-zts-20100525/memcached.so' - dlopen(/usr/local/Cellar/php54/5.4.38/lib/php/extensions/no-debug-non-zts-20100525/memcached.so, 9): image not found in Unknown on line 0

Pour résoudre ce problème, je viens d'ajouter la ligne suivante à mon profil bash:

export PHPRC=/usr/local/etc/php/5.5/php.ini

Et puis tout a fonctionné comme d'habitude!

1
Matt Korostoff

J'ai eu cette erreur qui n'a pas été résolue par brew update && brew upgrade. Pour une raison quelconque, j'avais besoin de l'installer à partir de zéro:

$ brew install libpng

1
osowskit

J'ai eu ce problème après la mise à jour de MAMP, et la $ PATH personnalisée que j'avais définie était fausse à cause de la nouvelle version de php. Ainsi, la mauvaise version de php a été chargée en premier, et c'est cette version de php qui a déclenché l'erreur.

La mise à jour du chemin dans mon fichier .bash_profile a résolu mon problème.

0
axxxman