使用任何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
我的大部分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
现在错误已更改为:
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
我正在运行Mavericks(10.9.2)和PHP 5.5.1。
提前致谢!
答案 0 :(得分:151)
我建议你跑:
$ brew update && brew upgrade
直到几分钟前我也遇到了这个问题。因为我有一个最新的PHP版本,我解决了它:
$ brew reinstall php55
希望有所帮助。
答案 1 :(得分: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
然后想出一个更简单的方法:
在你的盒子上搜索你的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
制作符号链接:
LAPTOP:folder Username$ ln -s /usr/local/Cellar/libpng/1.5.14/lib/libpng15.15.dylib /usr/local/lib/libpng15.15.dylib
再试一次:
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
答案 2 :(得分:18)
这是因为libpng没有符号链接。你需要再次链接libpng。
brew unlink libpng && brew link libpng
你可能会遇到一些错误。我通过更正权限修复了该错误。也许是因为卸载了macports。
sudo chown -R yourid:staff /usr/local/share/man/
再次创建链接,它可以正常工作。
答案 3 :(得分:11)
我通过将其复制到丢失的目录来解决这个问题:
cp /opt/X11/lib/libpng15.15.dylib /usr/local/lib/libpng15.15.dylib
brew重新安装libpng继续安装libpng16,而不是libpng15所以我被迫做了以上操作。
答案 4 :(得分:8)
就我而言,它是libjpeg
。我所要做的只是运行brew reinstall libjpeg
,一切正常!
答案 5 :(得分:4)
以防其他人遇到此问题我通过以下
解决了这个问题brew update && brew upgrade # installs libpng 1.6
这导致其他需要1.5的软件包出错,因此我将其链接起来:
cd /usr/local/lib/
ln -s ../Cellar/libpng/1.5.18/lib/libpng15.15.dylib
现在,他们和谐地生活在一起,为不同的包装并排。重建依赖于1.5的软件包会更好,但这可以作为快速的绷带修复。
答案 6 :(得分:3)
我知道这个问题已经有了解决方案。但是我想给你两分钱来帮助人们理解这个问题。得到同样的问题我创建了a specific question。我遇到了同样的问题,但只有PHPStorm。当我尝试从编辑器运行测试时。
dyld是动态链接器
我播种dyld正在寻找/usr/local/lib/libpng15.15.dylib,但在我的/ usr / local / lib /里面却没有。在那个文件夹中,我得到了libpng16.16.dylib。
感谢评论,我发现我的/ usr / bin / php是指向php 5.5.8的指针。相反,... / usr / local / bin / php是5.5.14。 PHPStorm使用默认配置的/ usr / bin / php。当我通过控制台运行php时,我运行/ urs / local / bin / php。
所以,...如果你得到一些dyld错误,也许你有一些错误的PHP配置。这是因为
$ brew update && brew upgrade
$ brew reinstall php55
但我不知道为什么这不能解决问题。也许是因为我有
答案 7 :(得分:1)
我也有这个问题,这个帖子中没有一个解决方案适合我。事实证明,问题是我在~/.bash_profile
中有这一行:
alias php="/usr/local/php/bin/php"
事实证明,/usr/local/php
只是/usr/local/Cellar/php54/5.4.24/
的符号链接。所以当我调用php -i
时,我仍在调用php54。我刚从我的bash配置文件中删除了这一行,然后php工作了。
出于某种原因,即使php55正在运行,php54的php.ini
文件仍然被加载,每次调用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
要解决此问题,我只是将以下行添加到我的bash配置文件中:
export PHPRC=/usr/local/etc/php/5.5/php.ini
然后一切正常!
答案 8 :(得分:1)
我遇到了$ brew install libpng
未解决的错误。出于某种原因,我需要从头开始安装它:
file_1:
Apples: 5 items in stock
Pears: 10 items in stock
Bananas: 15 items in stock
file_2:
Watermelon: 20 items in stock
Oranges: 30 items in stock
Pears: 25 items in stock
答案 9 :(得分:1)
我很难遇到这个错误:
原因:不兼容的库版本:php 需要44.0.0或更高版本,但libpng16.16.dylib提供 版本42.0.0跟踪/ BPT陷阱:6
我用brew酿造了所有上述东西......还有更多......但不是这个!
检查您的图书馆在哪里:
sudo find / -name libpng16.16.dylib
就我而言,这是相关的结果:
因此我和MAMP用户一样,当我尝试从PHP 7.1.0更新到7.1.8(last MAMP php available)时出现错误,因为Symfony4需要至少7.1.3 < / p>
最后,我安装了新版本的MAMP,并且工作正常(4.1到4.2)。 但是,当您执行此操作时,您需要先备份MAMP / htdoc文件夹中的所有内容。还保留自定义编译的php版本的备份,而不是可以存在于MAMP / bin / php中。 (就我而言,我有一个特殊的PHP版本,带有Oracle驱动程序)。
此外,如果您将MAMP php版本配置为CLI php解释器,则需要更新.bash_profile中的PATH
看起来应该是这样的:
export PATH = / Applications / MAMP / bin / php / php7.1.8 / bin:$ PATH
我希望这可以提供帮助。
答案 10 :(得分:0)
我在更新MAMP之后遇到了这个问题,并且我设置的自定义$ PATH因为新的php版本而错误,所以首先加载了错误版本的php,并且是那个版本的php触发了错误。
更新.bash_profile中的路径修复了我的问题。