Windows下VS2013中ImageMagick源码编译

本文为转载,原博客地址:https://blog.csdn.net/kmblack1/article/details/79278724

另一篇参考博客:https://blog.csdn.net/yasi_xi/article/details/33793913

错误解决相关博客:https://blog.csdn.net/wgx571859177/article/details/79837916

1 下载必须的软件

主页

windows

下载源码

7版本和6版本差距比较大,导致以前的代码无法使用,因此本文是基于6版本编译的,7版本也是同样的方法.

2 Windows

2.1 配置工具

2.1.1 编译配置工具

首先解压下载的压缩包后,打开解压目录”VisualMagick\configure”,找到并打开”configure.sln”编译配置工具.编译选项设置为Release,其它无需设置,然后编译配置工具.

2.1.2 运行配置工具

编译完成后,在”VisualMagick\configure”中双击运行configure.exe.

直接点击下一步.

Target Setup中设置您需要的类型.

这里我选择的是”Static Multi-thread runtimes(静态库).”

然后勾选”Build options(编译选项)”,一般默认即可,只需要选择”Visual Studio Version”为你机器上安装的版本,这里我选择2015.

设置完成后点击下一步,使用默认设置即可.

继续点击下一步,然后点击完成待运行完成后,在”VisualMagick”目录多了个sln文件,sln文件名称根据你在第二步中设置有所不同,因为我选择的是”Static Multi-thread runtimes(静态库)”,所以工程文件为”VisualMagick\VisualDynamicMT.sln”

2.2 编译源码

双击打开”VisualMagick\VisualDynamicMT.sln”,选择要编译的类型和平台,然后点击重新生成开始编译.

2.3 附加头文件目录

D:\library\ImageMagick-6.9.9-34\ImageMagick
D:\library\ImageMagick-6.9.9-34\ImageMagick\Magick++\lib
  • 1
  • 2

2.4 附加库目录

D:\library\ImageMagick-6.9.9-34\VisualMagick\lib
  • 1

2.5 引用的库文件

库文件Debug版本命名为“CORE_DB*”,Release版本命名为“CORE_RL*”

2.5.1 Debug版本引用的库文件

共27个

CORE_DB_bzlib_.lib
CORE_DB_cairo_.lib
CORE_DB_coders_.lib
CORE_DB_croco_.lib
CORE_DB_exr_.lib
CORE_DB_ffi_.lib
CORE_DB_filters_.lib
CORE_DB_flif_.lib
CORE_DB_glib_.lib
CORE_DB_jp2_.lib
CORE_DB_jpeg_.lib
CORE_DB_lcms_.lib
CORE_DB_libraw_.lib
CORE_DB_librsvg_.lib
CORE_DB_libxml_.lib
CORE_DB_lqr_.lib
CORE_DB_Magick++_.lib
CORE_DB_magick_.lib
CORE_DB_openjpeg_.lib
CORE_DB_pango_.lib
CORE_DB_pixman_.lib
CORE_DB_png_.lib
CORE_DB_tiff_.lib
CORE_DB_ttf_.lib
CORE_DB_wand_.lib
CORE_DB_webp_.lib
CORE_DB_zlib_.lib
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

2.5.2 Release版本引用的库文件

共27个

CORE_RL_bzlib_.lib
CORE_RL_cairo_.lib
CORE_RL_coders_.lib
CORE_RL_croco_.lib
CORE_RL_exr_.lib
CORE_RL_ffi_.lib
CORE_RL_filters_.lib
CORE_RL_flif_.lib
CORE_RL_glib_.lib
CORE_RL_jp2_.lib
CORE_RL_jpeg_.lib
CORE_RL_lcms_.lib
CORE_RL_libraw_.lib
CORE_RL_librsvg_.lib
CORE_RL_libxml_.lib
CORE_RL_lqr_.lib
CORE_RL_Magick++_.lib
CORE_RL_magick_.lib
CORE_RL_openjpeg_.lib
CORE_RL_pango_.lib
CORE_RL_pixman_.lib
CORE_RL_png_.lib
CORE_RL_tiff_.lib
CORE_RL_ttf_.lib
CORE_RL_wand_.lib
CORE_RL_webp_.lib
CORE_RL_zlib_.lib
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

2.5.3 dll

把CORE_DB*.dll复制到应用程序Debug目录.

把CORE_RL*.dll复制到应用程序Release目录.

3 Linux

3.1 安装依赖包

依赖包请先尝试

sudo apt-get install libmagick++-dev
  • 1

但是不要安装(选择n),把需要的依赖包复制下来,把其中名称中包含magick关键字的依赖包删除,得到以下结果:

sudo apt-get install bzip2-doc gir1.2-rsvg-2.0 libbz2-dev libcairo-script-interpreter2 libcairo2-dev libcdt5 libcgraph6 libdjvulibre-dev libexif-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev libgdk-pixbuf2.0-dev libgraphviz-dev libgvc6 libgvc6-plugins-gtk libgvpr2 libice-dev libilmbase-dev libjasper-dev libjbig-dev libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev liblcms2-dev liblqr-1-0-dev liblzma-dev libopenexr-dev libpathplan4 libpixman-1-dev libpng12-dev librsvg2-dev libsm-dev libtiff5-dev libtiffxx5 libwmf-dev libx11-dev libx11-doc libxau-dev libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxdmcp-dev libxdot4 libxext-dev libxrender-dev libxt-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-render-dev x11proto-xext-dev xorg-sgml-doctools xtrans-dev libcairo2-doc libice-doc liblzma-doc librsvg2-doc libsm-doc libwmf-doc libxcb-doc libxext-doc libopenjp2-7-dev
  • 1

3.2 编译源码

tar -xf ImageMagick.tar.gz
cd ImageMagick-6.9.9-34
./configure --prefix=/usr/local/imagemagick
make
sudo make install
  • 1
  • 2
  • 3
  • 4
  • 5

3.3 使用

gcc编译时如有警告,需要定义下面的宏

 -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16
  • 1

3.3.1 头文件

/usr/include/ImageMagick-6/Magick++
  • 1

3.3.2 库文件

在linux上引用a文件会编译会出现未定义的函数的错误,因此使用so文件

/usr/lib/x86_64-linux-gnu/libMagickCore-6.Q16.so
/usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so
/usr/lib/x86_64-linux-gnu/libMagick++-6.Q16.so
  • 1
  • 2
  • 3

3.3.3 环境变量

so文件需要将so加入到LD_LIBRARY_PATH环境变量中 
设置ImageMagick环境变量

3.3.3.1 临时设置
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/imagemagick/lib
  • 1
3.3.3.2 永久设置
sudo vim /etc/environment
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/imagemagick/lib
#在PATH=最后加上
/usr/local/imagemagick/bin
source /etc/environment
  • 1
  • 2
  • 3
  • 4
  • 5

4 注意事项

* 4.1 安装字体*

由于绘图时需要使用到字体,因此需要安装中文字体支持

sudo apt-get  install fonts-wqy-zenhei fonts-wqy-microhei ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy
  • 1

* 4.2 查看支持的字体命令*

identify -list font
  • 1

* 4.3 Linux查看支持中文的字体*

fc-list :lang=zh-cn
  • 1

* 4.4 绘制中文注意事项*

ImageMagick绘制文字默认使用的是UTF-8编码,当然你也可以在Magick::DrawableText第4个参数中指定,但是还是建议在绘制前将文字转换为UTF-8.


你可能感兴趣的:(C++,小知识)