2012-11-15 98 views
3

我已经安装了imagick php模块,并使用Brew安装了Image Magick。一旦安装并添加到我的php.ini扩展中,当Apache(XAMPP)启动时出现此错误。PHP imagick安装错误

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 

谷歌已经没有帮助

+0

你能告诉我你使用64位Windows吗?我相信这是与imagick-3.X.X和Windows 7 64bit中的imagick PHP DLL的不兼容。尝试使用imagick-2.3.X。这为我解决了问题。 – StigM

+0

这是一个MacOS问题,使用自制软件安装。 –

回答

2

看起来你必须手工如下编译:

$ 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水龙头酿造和删除XAMMP,我使用它,并完美的作品: https://github.com/josegonzalez/homebrew-php

这片拥有最稳定的包和近期的用于PHP

问候

+0

获得奖励,即使我最终使用带有imagick的bitnami代替。 ;) –

0

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

原来并非所有链接正确的库。我认为这是我用来检查另一台计算机上正在运行的imagick.so文件和不会加载的文件之间差异的'nm'命令。无论如何,我现在已经通过编译问题和不兼容来重新安装所有东西,从头开始解决它。