/usr/local/lib/libpng.3使用php时使用Dylib


dyld: Library not loaded: /usr/local/lib/libpng.3.dylib when using php

运行php时出现错误:

$ php -v
dyld: Library not loaded: /usr/local/lib/libpng.3.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
Trace/BPT trap: 5

我读到这个字段:库未加载:/usr/local/lib/libpng16.16。dylib与任何php相关,但我不确定php是否与brew一起安装,因为这个命令brew reinstall php55(或其他任何像brew reinstall php, brew reinstall php56)不起作用。

下一个答案建议将这个缺失的库进行符号连接。例如

$ locate libpng.3.dylib
/opt/X11/lib/libpng.3.dylib
/usr/local/php5/lib/libpng.3.dylib
$ ls -l /usr/local/php5/lib/libpng.3.dylib
lrwxrwxrwx  1 snowcrash  admin  18 15 Jan  2008 /usr/local/php5/lib/libpng.3.dylib -> libpng.3.0.0.dylib
$ ls -l /usr/local/php5/lib/libpng.3.0.0.dylib 
-rwxrwxrwx  1 snowcrash  admin  422632  4 May  2007 /usr/local/php5/lib/libpng.3.0.0.dylib
$ ln -s /usr/local/php5/lib/libpng.3.0.0.dylib  /usr/local/lib/libpng.3.dylib
$ php -v
dyld: Library not loaded: /usr/local/lib/libpng.3.dylib
Referenced from: /usr/local/bin/php
Reason: Incompatible library version: php requires version 20.0.0 or later, but libpng.3.dylib provides version 4.0.0
Trace/BPT trap: 5

,但似乎版本太旧,所以不知道该怎么做。我想我需要以某种方式升级PHP或找到一个更最新的libpng版本。

有什么建议吗?

我的解决方案是安装de libjpeg:

Get http://www.ijg.org/files/jpegsrc.v6b.tar.gz, and then: tar zxvf jpegsrc.v6b.tar.gz cd jpeg-6b cp /usr/share/libtool/config.sub . cp /usr/share/libtool/config.guess . ./configure --enable-shared --enable-static make sudo make install sudo ranlib /usr/local/lib/libjpeg.a