dyld: Biblioteca no cargada:/usr/local/lib/libpng16.16.dylib con cualquier cosa relacionada con php
osx-mavericks (11)
El uso de cualquier aplicación de PHP da como resultado:
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 mayoría de mis aplicaciones php fueron instaladas usando homebrew con la excepción de composer (instalado usando curl)
Traté de eliminar el libpng y volver a instalar con homebrew en vano.
Lo siguiente fue cambiar a la última versión de libpng 1.5 como se indica en el mensaje de error:
$ 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
Ahora el error ha cambiado a:
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
Estoy ejecutando Mavericks (10.9.2) y PHP 5.5.1.
¡Gracias por adelantado!
En mi caso, fue libjpeg
. Todo lo que tuve que hacer fue ejecutar brew reinstall libjpeg
y ¡todo funcionó!
Es porque no hay enlaces simbólicos para libpng. Necesitas vincular libpng nuevamente.
brew unlink libpng && brew link libpng
Y puede obtener algún error. Solucioné ese error corrigiendo el permiso. Tal vez se deba a macports desinstalados.
sudo chown -R yourid:staff /usr/local/share/man/
Crea un enlace de nuevo y funcionará.
Lo resolví copiándolo en el directorio que faltaba:
cp /opt/X11/lib/libpng15.15.dylib /usr/local/lib/libpng15.15.dylib
brew reinstall libpng siguió instalando libpng16, no libpng15, así que me obligaron a hacer lo anterior.
Obtuve este problema después de actualizar MAMP, y el $ PATH personalizado que había configurado era incorrecto debido a la nueva versión de php, por lo que la versión incorrecta de php se cargó primero, y fue esa versión de php la que desencadenó el error.
La actualización de la ruta en mi .bash_profile solucionó mi problema.
Sé que esta pregunta ya tiene una respuesta que da una solución. Pero quiero darle mi granito de arena para ayudar a las personas a comprender el problema. Obteniendo el mismo problema, he creado una pregunta específica . Tengo el mismo problema, pero solo con PHPStorm. Y exactamente cuando trato de ejecutar la prueba desde el editor.
dyld es el enlazador dinámico
Siembre que Dyld estaba buscando /usr/local/lib/libpng15.15.dylib pero dentro de mi / usr / local / lib / no había. En esa carpeta, obtuve libpng16.16.dylib.
Gracias a un comentario, entiendo que mi / usr / bin / php era un puntero a php 5.5.8. En cambio, ... / usr / local / bin / php era 5.5.14. PHPStorm trabajó con / usr / bin / php que es la configuración predeterminada. Cuando ejecuto php a través de la consola, ejecuto / urs / local / bin / php.
Entonces, ... si obtienes algún error Dyld, tal vez tengas una configuración de php incorrecta. Esa es la razón porque
$ brew update && brew upgrade
$ brew reinstall php55
Pero no sé por qué esto no me resuelve el problema. Tal vez porque tengo
Seguí lo anterior (nunca una mala idea para estar al día con la cerveza de todos modos) y todavía tenía el mismo problema exacto:
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
Entonces descubrió una forma más simple:
Busque su (s) versión (s) libpng en su caja:
# 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
Haz un enlace simbólico:
LAPTOP:folder Username$ ln -s /usr/local/Cellar/libpng/1.5.14/lib/libpng15.15.dylib /usr/local/lib/libpng15.15.dylib
Inténtalo de nuevo:
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
Solo en caso de que alguien más se encuentre con este problema lo resolví con lo siguiente
brew update && brew upgrade # installs libpng 1.6
Esto causó un error con otros paquetes que requieren 1.5 con los que se crearon, así que lo vinculé:
cd /usr/local/lib/
ln -s ../Cellar/libpng/1.5.18/lib/libpng15.15.dylib
Ahora ambos viven en armonía y al lado de los diferentes paquetes. Sería mejor reconstruir los paquetes que dependen de 1.5, pero esto funciona como una solución rápida de vendaje.
También tuve este problema, y ninguna de las soluciones en este hilo funcionó para mí. Resultó que el problema era que tenía esta línea en ~/.bash_profile
:
alias php="/usr/local/php/bin/php"
Y, como resulta, /usr/local/php
era solo un enlace simbólico a /usr/local/Cellar/php54/5.4.24/
. Entonces, cuando invoqué php -i
todavía estaba invocando php54. Acabo de eliminar esta línea de mi perfil bash, y luego php funcionó.
Por alguna razón, aunque php55 se estaba ejecutando, el archivo php.ini
de php54 todavía estaba cargado, y recibí esta advertencia cada vez que invocaba 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
Para solucionar esto, acabo de agregar la siguiente línea a mi perfil de bash:
export PHPRC=/usr/local/etc/php/5.5/php.ini
¡Y luego todo funcionó de manera normal!
Te sugiero que corras:
$ brew update && brew upgrade
Hasta hace unos minutos tuve este problema también. Como tengo una versión actualizada de PHP, la resolví con:
$ brew reinstall php55
Espero que ayude.
Tuve este error que no fue resuelto por la brew update && brew upgrade
. Por alguna razón, necesitaba instalarlo desde cero:
$ brew install libpng
Tuve mucha dificultad con este error:
Motivo: Versión de biblioteca incompatible: php requiere la versión 44.0.0 o posterior, pero libpng16.16.dylib proporciona la versión 42.0.0 Trace / BPT trap: 6
Hice todas las cosas anteriores con cerveza y mucho más ... ¡pero no fue esto!
Comprueba dónde está tu biblioteca:
sudo find / -name libpng16.16.dylib
En mi caso aquí fue el resultado relevante:
- /usr/local/lib/libpng16.16.dylib
- /usr/local/Cellar/libpng/1.6.34/lib/libpng16.16.dylib
- /Aplicaciones/MAMP/Library/lib/libpng16.16.dylib
- /opt/X11/lib/libpng16.16.dylib
Entonces, como soy un usuario de MAMP, resultó que el error apareció mientras intentaba actualizar de PHP 7.1.0 a 7.1.8 (el último PHP de MAMP disponible ) ya que Symfony4 requiere al menos 7.1.3
Al final instalé la nueva versión de MAMP y funcionó (4.1 a 4.2). Sin embargo, tenga en cuenta que cuando haga esto, primero debe hacer una copia de seguridad de todo en su carpeta MAMP / htdoc. También mantenga una copia de seguridad de su versión compilada de PHP personalizada que pueda vivir en MAMP / bin / php. (En mi caso, tuve una versión especial de PHP con controladores de Oracle).
Además, si configuró la versión php de MAMP para que sea su intérprete php CLI, deberá actualizar la RUTA en su perfil .bash
Debería verse algo como esto:
ruta de exportación = / Aplicaciones / MAMP / bin / php / php7.1.8 / bin: $ PATH
Espero que esto pueda ayudar.