ubuntu系统自带的imagemagick没有c++函数库,需要能重新下载一个新一点的库,重新编译并且安装

一、教程

官网详细教程:https://imagemagick.org/script/install-source.php

  1. 源码编译:

下载:

git clone https://github.com/ImageMagick/ImageMagick.git ImageMagick-7.1.1

此时删除原有的imagemagick

sudo apt-get remove imagemagick

进入目录和安装:

cd ImageMagick-7.1.1
./configure --with-magick-plus-plus
make
sudo make install

注意:

./configure 如果不带–with-magick-plus-plus,只会安装命令行之类的工具,不会安装c++函数库。

配置动态链接器运行时绑定:

sudo ldconfig /usr/local/lib

验证:

/usr/local/bin/convert logo: logo.gif
convert -version

要进行更全面的测试,请运行ImageMagick验证套件:

make check

二、问题排查

  1. 找不到Magick++ API?

我在 Ubuntu 14.04 上,默认安装了 ImageMagick 6.7.7-10。我需要在 C++ 项目中使用Magick++
,ImageMagick 的 C++ API,但我不知道它位于何处。我怎么知道我是否拥有它,如果我没有,获得它的最佳方式是什么?

需要安装一些依赖:

sudo apt-get install graphicsmagick-libmagick-dev-compat

或者:

sudo apt-get install libgraphicsmagick1-dev

因为:

% apt-rdepends graphicsmagick-libmagick-dev-compat | grep magick
Reading package lists... Done
Building dependency tree
Reading state information... Done
graphicsmagick-libmagick-dev-compatDepends: libgraphics-magick-perlDepends: libgraphicsmagick++1-devDepends: libgraphicsmagick1-dev
libgraphics-magick-perlDepends: libgraphicsmagick3 (>= 1.3.5)
libgraphicsmagick3
libgraphicsmagick++1-devDepends: libgraphicsmagick++3 (= 1.3.20-4)Depends: libgraphicsmagick1-dev
libgraphicsmagick++3Depends: libgraphicsmagick3 (>= 1.3.15)
libgraphicsmagick1-devDepends: libgraphicsmagick3 (= 1.3.20-4)% apt-rdepends libgraphicsmagick1-dev | grep magick
Reading package lists... Done
Building dependency tree
Reading state information... Done
libgraphicsmagick1-devDepends: libgraphicsmagick3 (= 1.3.20-4)
libgraphicsmagick3
sudo apt-get install libmagick++-dev

此时再进行查找:

sudo apt-file find Magick++.h

存在相关的:

/usr/include/ImageMagick/Magick++.h
  1. 报错找不到/magick-baseconfig.h

[100%] Building CXX object cuneiform_src/cli/CMakeFiles/cuneiform-cli.dir/cuneiform-cli.cpp.o
In file included from /usr/include/ImageMagick-6/Magick++/Include.h:13:0,
from /usr/include/ImageMagick-6/Magick++.h:9,
from /tmp/cuneiform-linux-1.1.0/cuneiform_src/cli/cuneiform-cli.cpp:156:
/usr/include/ImageMagick-6/magick/magick-config.h:21:38: fatal error: magick/magick-baseconfig.h: No such file or directory
#include “magick/magick-baseconfig.h”
^
compilation terminated.

通过搜索标头,发现它可以在不同的 ImageMagick 目录中找到:

$ find /usr/include/ -name "*baseconfig*"
/usr/include/x86_64-linux-gnu/ImageMagick-6/magick/magick-baseconfig.h7

软链接丢失的文件并没有解决问题。

解决办法:参考http://bazaar.launchpad.net/~jpakkane/cuneiform-linux/trunk/files
cuneiform_src/ 中的文件的时间戳 = 2010 或更早。难怪找不到新的 Debian 路径。(未找到 magick/magick-baseconfig.h)。

简单修复:

mkdir /usr/local/include/magick
cp /usr/include/x86_64-linux-gnu/ImageMagick-6/magick/magick-baseconfig.h /usr/local/include/magick/
  1. jpg文件无法识别
#include <Magick++.h>using namespace Magick;int main(int argc, char ** argv)
{InitializeMagick(*argv);
Image image("100x100", "white");
image.pixelColor(49, 49, "red");
image.write("red_pixel.jpeg");
return 0;
}

编译

g++ -O2 -o example.o  example.cpp `Magick++-config --cppflags --cxxflags --ldflags --libs`

报错:

terminate called after throwing an instance of ‘Magick::Error Missing Delegate’ what(): img: no decode delegate for this image format `JPG’ @ error/constitute.c/ReadImage/746

terminate called after throwing an instance of
'Magick::ErrorMissingDelegate

类似的错误

问题原因:如果用convert xx.png xx.jpeg等指令也会报类似错误,原因是没有png及jpeg的库导致的。一些必要的依赖没有安装,必须根据此说明重新安装带有所有附加组件的 ImageMagick

sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libpng12-0 libpng12-dev
sudo apt-get install libjpeg62 libjpeg62-dev
sudo apt-get install -y libtiff-dev

然后重新编译安装

重新安装办法快速见:

#These are the steps required in order to Install ImageMagick with JPG, PNG and TIFF delegates.sudo apt-get update #Install Build-Essential in order to configure and make the final Installsudo apt-get install build-essential #libjpg62-dev required in order to work with basic JPG filessudo apt-get install -y libjpeg62-dev #libtiff-dev is required in order to work with TIFF file formatsudo apt-get install -y libtiff-dev #Download ImageMagickwget https://www.imagemagick.org/download/ImageMagick.tar.gz #Untar Imagemagicktar xvzf ImageMagick.tar.gz #Access the working directorycd ImageMagick/[version_number] #Configure and make sure to disable the "shared" option./configure --disable-shared#Makesudo make#Installsudo make install#Final Checksudo make check

【c++开发】C++ Linux Ubuntu imagemagick以及magick++安装;c++调用magick++库;找不到Magick++.h相关推荐

  1. Linux/ubuntu server 18.04 安装远程桌面--vnc server

    此文首发于我的个人博客:Linux/ubuntu server 18.04 安装远程桌面–vnc server - zhang0peter的个人博客 想装桌面端在服务器上的原因是我在终端中开chrom ...

  2. DELL台式机Linux ubuntu 20.04.5 安装

    DELL台式机Linux ubuntu 20.04.5 安装 陈拓 2022/09/07-2022/09/08 镜像下载 Index of /ubuntu-releases/20.04/ | 清华大学 ...

  3. 【Android Studio】Android Studio 搭建开发环境(Linux Ubuntu篇)

    Windows篇:[Android Studio]Android Studio 搭建开发环境(Windows篇)_dandelionela的博客-CSDN博客 Ubuntu篇参考: Ubuntu 18 ...

  4. linux没有图形界面opcv,关于Linux/ubuntu的环境下安装OpenCV并配置Clion【全套攻略】及关于'Opencv'file not found 的问题...

    1.如何在Linux/ubuntu配置OpenCV 1.1 :进入OpenCV官网下载:(也可进入git Hub 在终端Clone) 等待下载完成 1.2:安装OpenCV: 笔者下载的是Opencv ...

  5. [Linux]Ubuntu下用apt-get安装的应用程序位置

    Ubuntu下用apt-get安装的应用程序的可执行文件默认放到/usr/bin目录下. 比如: 运行eclipse命令,如果出现:"程序eclipse未安装",这样我们可以执行: ...

  6. 【嵌入式开发】 Linux Kernel 下载 配置 编译 安装 及 驱动简介

    作者 : 韩曙亮 转载请出名出处 : http://blog.csdn.net/shulianghan/article/details/38636827 一. Linux 内核简介 1. 内核功能简介 ...

  7. lazarus 编译linux,Ubuntu 15.10下安装Lazarus IDE 1.6

    Lazaurs编辑器是很强大的,支持代码补全,自动完成,模板编辑,多行缩进注释,选定代码后批量更改里面的单词! Lazarus 支持多种操作系统,Windows,以及几种 Linux 发行版,当然包括 ...

  8. linux ubuntu QT 下载和安装(Qt Creator)

    下载地址:https://download.qt.io/ 为什么选5.14版本,因为其他几个没发现 用迅雷下,下好后拷贝到ubuntu里,切换root用户,给安装包赋777权限 chmod 777 q ...

  9. qt 运行库 linux,linux(ubuntu) 版qt5.x安装的一些知识

    1.将系统更新到最新: sudo apt-get update sudo apt-get dist-upgrade 不是桌面版的要执行下面命令 sudo apt-get install gnome-c ...

最新文章

  1. springboot中如何添加第三方的jar包或者说如何配置本地jar
  2. PHP-02.文件上传、php保存/转移上传的文件、常见的网络传输协议、请求报文及属性、响应报文及属性...
  3. 【渝粤教育】国家开放大学2018年秋季 1167t环境水利学 参考试题
  4. execl中设置的格式无法实现
  5. jQuery之防止【冒泡事件】,阻止默认行为 【return false】 event.stopPropagation event.preventDefault...
  6. 房子成焦点,被挂马的×××网站仍在增加中
  7. AcWing基础算法课Level-2 第六讲 贪心
  8. Oracle用户权限分配的具体方法
  9. Windows系统win10系统压缩解压软件推荐
  10. flac批量转mp3,详细步骤
  11. html初始化调用js函数
  12. Oracle查询排列组合,Oracle SQL排列组合之组合问题
  13. 拼多多店铺流量解析:这些流量入口你必须了解!
  14. matlab中设x=zsin3x,三阶偏导数设e的sin(2x+3y)次方,求Z的三阶偏导数是多少?
  15. 【Excel VBA】批量新建并重命名工作表
  16. FusionCharts参数简单说明
  17. break语句的作用
  18. SAP 客商之一次性供应商
  19. Linux KVM环境搭建,以及创建kvm虚拟机
  20. HTML5_CSS入门(内部样式、外部样式、内联样式、选择器)

热门文章

  1. java 监控之JMX规范1
  2. Revit-BIM模型轻量化 关于合批(merge)那些小技巧
  3. 如何有效的跨团队、多角色沟通
  4. 边缘计算、网络功能虚化
  5. 运算放大器---功耗(Iq需求)
  6. 如何使APP开机自启动
  7. 台式计算机排行榜2018,2018最新电脑CPU排行榜
  8. LTE-5G学习笔记15--Volte关键技术TTI Bundling讲解
  9. icon旋转 让你的 icon转起来
  10. AI向实而生,智能技术构筑科技变革主线