2 xu ch xu_ch 于 2014.04.07 18:27 提问

Cmake时报错:Could NOT find ImageMagick

安装zimg时报错

CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97 (message):
Could NOT find ImageMagick (missing: ImageMagick_MagickWand_LIBRARY) (found
version "6.8.7-2")
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:291 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-2.8/Modules/FindImageMagick.cmake:208 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:79 (find_package)

CmakeLists.txt 79行内容为:

find_package(ImageMagick COMPONENTS MagickWand REQUIRED)

1个回答

ziputao1165
ziputao1165   2014.07.14 17:46

非常抱歉刚看到你的这个问题,我是zimg的作者,这个错误的原因是cmake找不到imagemagick库,因为你通过apt-get或者yum安装的仅仅是imagemagick,而不包括magickwand的开发包。

解决方案有两个,第一种很简单:

找到libmagickwand-dev这个包进行安装,比如在ubuntu中可以使用以下命令

sudo apt-get install libmagickwand-dev

如果是centOS的话可能需要自己查找一下类似的包,或者使用方案二。

sudo yum install ImageMagick-devel

第二种是手动修改cmakelist文件:

首先确保自己的系统里安装了imagemagick,执行这个命令有结果即为安装了:

ls /usr/local/lib/ |grep MagickWand
libMagickWand-6.Q16.a
libMagickWand-6.Q16.la
libMagickWand-6.Q16.so
libMagickWand-6.Q16.so.2
libMagickWand-6.Q16.so.2.0.0

然后你修改一下 src/CMakeLists.txt 文件,在108行开始

# find_package (ImageMagick COMPONENTS MagickWand REQUIRED)
set (ImageMagick_INCLUDE_DIRS "/usr/local/include/ImageMagick-6")
set (ImageMagick_MagickWand_LIBRARY "/usr/local/lib/libMagickWand-6.Q16.so")

先把原先那个find_package注释掉,然后加上后面那两行,在此执行cmake。

这样做是不依靠cmake来查找imagemagick,而自己直接设置库的地址,已经有多位用户确认可以编译成功。

u013610528
u013610528 service php-fpm restart Restarting php-fpm daemon: php-fpm[09-Oct-2016 19:54:20] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/webserver/php/lib/php/extensions/imagick.so' - libMagickWand-6.Q16.so.2: cannot open shared object file: No such file or directory in Unknown on line 0 . [root@back1431511300 src]#
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!