xu_ch 2014-04-07 10:27 采纳率: 0%
浏览 6248

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条回答

  • 招牌-疯子 2014-07-14 09: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,而自己直接设置库的地址,已经有多位用户确认可以编译成功。

    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看