dyld: Bibliothèque non chargée:/usr/local/lib / libng16.16.dylib avec tout ce qui est lié à php

L'utilisation de n'importe quelle application php aboutit à:

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 en utilisant homebrew à l'exception de composer (installé en utilisant curl)

j'ai essayé de supprimer le libpng et de réinstaller avec homebrew en vain.

ensuite é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 a changé en:

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

Im fonctionnant Mavericks (10.9.2) et PHP 5.5.1.

Merci d'avance!

112
demandé sur user3458861 2014-03-25 14:00:02

11 réponses

je vous suggère de courir:

$ brew update && brew upgrade

Jusqu'à il y a quelques minutes j'ai eu ce problème, aussi. Parce que j'ai une version PHP à jour, je l'ai résolu avec:

$ brew reinstall php55

Espère que ça aide.

145
répondu Pera Jovic 2014-03-28 04:40:46

j'ai suivi ce qui précède (jamais une mauvaise idée de se tenir à jour avec brew de toute façon) et avait toujours la même question exacte:

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

puis trouvé un moyen plus simple:

Recherchez votre version de 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

Essayez de nouveau:

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) Mac OS X équivalent de locate

42
répondu phpguru 2017-03-20 10:04:20

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 pourriez avoir une erreur. J'ai corrigé cette erreur en modifiant l'autorisation. C'est peut-être à cause de la désinstallation de macports.

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

crée à nouveau le lien et ça marchera.

17
répondu Jonghee Park 2014-08-26 13:34:22

j'ai résolu ce problème en 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 donc j'ai été forcé de faire ce qui précède.

11
répondu user391339 2014-07-02 06:42:09

Dans mon cas c'était libjpeg . Tout ce que j'avais à faire, c'était courir brew reinstall libjpeg et tout a fonctionné!

8
répondu saada 2015-04-17 12:12:12

juste au cas où quelqu'un d'autre se heurte à ce problème, je l'ai résolu par ce qui suit

brew update && brew upgrade # installs libpng 1.6

cela a causé une erreur avec les autres paquets nécessitant 1.5 avec lesquels ils ont été construits, donc je l'ai lié:

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

maintenant ils vivent en harmonie et côte à côte pour les différents paquets. Il serait préférable de reconstruire les paquets qui dépendent de 1.5, mais cela fonctionne comme un pansement rapide.

4
répondu Alex 2014-09-23 14:13:01

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

dyld est l'éditeur de liens dynamique

j'ai semé que dyld cherchait /usr/local/lib / libng15.15.dylib mais à l'intérieur de mon /usr/local/lib/ il n'y avait pas. Dans ce dossier, j'ai libpng16.16.dylib.

grâce à un commentaire, je comprends que mon /usr/bin/php était un pointeur vers php 5.5.8. Plutôt. ,.. /usr/local/bin / php était 5.5.14. PHPStorm a travaillé avec /usr/bin/php qui est la configuration par défaut. Quand j'exécute php via la console, j'exécute /urs/local/bin / php.

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

$ 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
répondu sensorario 2017-05-23 11:47:30

j'ai aussi eu ce problème, et aucune des solutions dans ce fil n'a fonctionné pour moi. Comme il s'avère, le problème était que j'avais cette ligne dans ~/.bash_profile :

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

Et, comme il s'avère, /usr/local/php était juste un lien symbolique vers /usr/local/Cellar/php54/5.4.24/ . Ainsi, lorsque j'ai invoqué php -i , j'invoquais encore php54. Je viens de supprimer cette ligne de mon profil bash, et ensuite php a fonctionné.

pour une raison quelconque, même si php55 était maintenant en cours d'exécution, le Le fichier php.ini de php54 était encore 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 corriger cela, 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
répondu Matt Korostoff 2015-03-29 15:53:37

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

$ brew install libpng

1
répondu osowskit 2017-04-30 21:17:31

j'ai eu beaucoup de mal avec cette erreur :

Raison: Incompatible version de bibliothèque: php nécessite la version 44.0.0 ou une version plus récente, mais libpng16.16.dylib fournit version 42.0.0 Trace/BPT trap: 6

j'ai fait toutes ces choses avec brew et beaucoup plus ... mais n'était-ce pas !

Vérifiez où est votre bibliothèque:

sudo find / - name libpng16.16.dylib

dans mon cas, voici le résultat pertinent:

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

comme je suis un utilisateur MAMP, il s'avère que l'erreur est apparue alors que j'essayais de mise à jour de PHP 7.1.0 à 7.1.8 ( dernier MAMP php disponible ) comme Symfony4 nécessitent au moins 7.1.3

à la fin j'ai installé la nouvelle version de MAMP et il 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. Gardez également une copie de sauvegarde de votre version php compilée personnalisée qui peut vivre dans MAMP/bin / php. (Dans mon cas, J'avais une version PHP spéciale avec des pilotes Oracle).

aussi si vous avez configuré la version php de MAMP pour être votre interpréteur PHP clip, vous aurez besoin de mettre à jour le chemin dans votre .bash_profile

, Il devrait ressembler à quelque chose comme ceci :

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

j'espère que cela peut aider.

1
répondu Kaizoku Gambare 2018-02-26 10:46:46

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

mettre à Jour le chemin d'accès dans mon .bash_profile a corrigé mon problème.

0
répondu axxxman 2014-10-06 14:49:04