运行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