3

我已经安装了 imagick php 模块,还使用 ​​Brew 安装了 Image Magick。在 php.ini 中安装并添加到我的扩展后,当 Apache (XAMPP) 启动时,我会收到此错误。

dyld: lazy symbol binding failed: Symbol not found: _MagickWandGenesis
Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20090626/imagick.so
Expected in: flat namespace

谷歌一直没有帮助

4

2 回答 2

3

看起来你必须手动编译它,如下所示:

$ cd /usr/local/src/
$ wget http://pecl.php.net/get/imagick-3.0.1.tgz
$ tar -xzvf imagick-3.0.1.tgz 
$ cd imagick-3.0.1
$ phpize
$ MACOSX_DEPLOYMENT_TARGET=10.6
$ CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp"
$ CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
$ CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
$ LDFLAGS="-arch i386 -arch x86_64 -bind_at_load"
$ export CFLAGS CXXFLAGS LDFLAGS CCFLAGS MACOSX_DEPLOYMENT_TARGET
$ echo $CFLAGS
$ ./configure --with-imagick=/usr/local//Cellar/imagemagick/6.8.0-10
$ make
$ sudo make install
$ sudo vim /etc/php.ini
$ sudo apachectl restart

这是这篇文章的摘录: http: //charles.lescampeurs.org/2013/06/18/add-c-header-include-path-pecl

但也许更简单的解决方案是使用 josegonzalez 的 PHP 水龙头进行 brew 并删除 XAMMP,我使用它并且工作完美: https ://github.com/josegonzalez/homebrew-php

此选项卡包含最稳定的包和最新的 PHP 包

问候

于 2013-11-18T13:18:00.590 回答
0

我对 AMPPS 也有同样的问题。我用自制软件安装了 ImageMagick 和 imagick,试图让它在 AMPPS 上运行。当我最终编译它时 - 我记得从涉及的 AMPPS 文件夹中指向正确二进制文件的符号链接 - 我收到了这个错误。

事实证明并非所有正确链接的库。我认为这是我用来检查另一台计算机上的工作 imagick.so 文件与无法加载的文件之间差异的“nm”命令。无论如何,我现在已经解决了编译问题和不兼容问题,并将自己从头开始重新安装所有内容以解决它。

于 2013-11-18T18:31:15.603 回答