dyld:库未加载:/usr/local/lib/libpng16.16.dylib与任何php相关

use*_*861 118 php dyld libpng osx-mavericks

使用任何PHP应用程序导致:

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
Run Code Online (Sandbox Code Playgroud)

我的大多数php应用程序都是使用自制程序安装的,但作曲家除外(使用curl安装)

我尝试删除libpng并用homebrew重新安装无济于事.

接下来是切换到错误消息中所述的最新版本的libpng 1.5:

$ 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
Run Code Online (Sandbox Code Playgroud)

现在错误已更改为:

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
Run Code Online (Sandbox Code Playgroud)

我正在运行Mavericks(10.9.2)和PHP 5.5.1.

提前致谢!

小智 152

我建议你跑:

$ brew update && brew upgrade
Run Code Online (Sandbox Code Playgroud)

直到几分钟前我也遇到了这个问题.因为我有一个最新的PHP版本,我解决了它:

$ brew reinstall php55
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.

  • 我讨厌这种方法有效,但确实如此.谢谢. (9认同)

php*_*uru 42

我按照上面的说法(无论如何都要及时了解brew)并且仍然有同样的问题:

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
Run Code Online (Sandbox Code Playgroud)

然后想出一个更简单的方法:

在你的盒子上搜索你的libpng版本:

# 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
Run Code Online (Sandbox Code Playgroud)

制作符号链接:

LAPTOP:folder Username$ ln -s /usr/local/Cellar/libpng/1.5.14/lib/libpng15.15.dylib /usr/local/lib/libpng15.15.dylib
Run Code Online (Sandbox Code Playgroud)

再试一次:

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
Run Code Online (Sandbox Code Playgroud)

1)Mac OS X相当于locate

  • 顺便说一句,`mdfind libpng15.15.dylib`不需要定位黑客 (8认同)

Jon*_*ark 18

这是因为libpng没有符号链接.你需要再次链接libpng.

brew unlink libpng && brew link libpng
Run Code Online (Sandbox Code Playgroud)

你可能会遇到一些错误.我通过更正权限修复了该错误.也许是因为卸载了macports.

sudo chown -R yourid:staff /usr/local/share/man/
Run Code Online (Sandbox Code Playgroud)

再次创建链接,它将工作.


use*_*339 11

我通过将其复制到丢失的目录解决了这个问题:

cp /opt/X11/lib/libpng15.15.dylib /usr/local/lib/libpng15.15.dylib
Run Code Online (Sandbox Code Playgroud)

brew重新安装libpng一直在安装libpng16,而不是libpng15所以我被迫做了以上操作.


saa*_*ada 8

就我而言libjpeg.我所要做的就是跑步brew reinstall libjpeg,一切正常!

  • 就我而言,它是`libpng`.`brew重新安装libpng`解决了它 (2认同)

小智 5

以防万一其他人遇到这个问题,我通过以下方法解决了它

brew update && brew upgrade # installs libpng 1.6
Run Code Online (Sandbox Code Playgroud)

这导致了其他需要 1.5 版本的包出现错误,所以我链接了它:

cd /usr/local/lib/
ln -s ../Cellar/libpng/1.5.18/lib/libpng15.15.dylib
Run Code Online (Sandbox Code Playgroud)

现在,他们和谐相处,并肩作战,为不同的包裹而战。最好重建依赖于 1.5 的软件包,但这可以作为一种快速的绷带修复。