1. “该文引用自 CruiseYoung的:Visual Studio 2013编译ImageMagick
  2. http://blog.csdn.net/fksec/article/details/36008343”

1 前期准备

1.1 C++11特性支持

Visual C++ Compiler November 2013 CTP (for  Visual Studio 2013)

下载页面:http://www.microsoft.com/en-us/download/details.aspx?id=41151

直接地址:http://download.microsoft.com/download/3/C/2/3C271B79-6354-4B66-9014-C6CEBC14C5C4/vc_CompilerCTP.Nov2013.exe

注1:

Visual C++ Compiler November 2012 CTP (for  Visual Studio 2012)

下载页面:http://www.microsoft.com/en-us/download/details.aspx?id=35515

直接地址:http://download.microsoft.com/download/5/1/6/5169AA1E-D7A4-4DC2-A9AE-0A9DFD2601AB/vc_compilerCTPNov2012.exe

1.2 “OpenCL”支持:

请参见:《Visual Studio 2013、TortoiseSVN、TortoiseGit、msysgit编译Tesseract(tesseract-ocr)》一文中的4.7节 地址:http://blog.csdn.net/fksec/article/details/32714639

2 官方网站

ImageMagick官网:http://www.imagemagick.org/
ImageMagick中文站:http://www.imagemagick.com.cn/

3 参考文档

ImageMagick-6.8.9\Install-windows.txt

4 代码下载

下载地址:http://www.imagemagick.org/download/
Windows编译,请点击“源码下载地址”页面中的“windows”目录连接进入;下载带“-windows”的压缩包,“zip”和“7z”任选其一即可。
最新稳定版本源码直接地址:
http://www.imagemagick.org/download/windows/ImageMagick-windows.7z

http://www.imagemagick.org/download/windows/ImageMagick-windows.zip

5 Win32(x86)平台编译

5.1 将源代码解压到当前目录,并进入ImageMagick-6.8.9\VisualMagick\configure目录,只有windows版本才有VisualMagick及其子目录
5.2 在当前目录找到“configure.exe”文件,如果没有,进行以下操作:

用Visual Studio 2013打开configure.sln文件,直接编译;

友情提示1:此处工程编译可以不考虑“解决方案平台”是“WIN32”或“x64”,也不需考虑“解决方案配置”是“Debug”或“Release”。只需择一即可,建议“解决方案平台”选择“WIN32”,“解决方案配置”选择“Release”;

友情提示2:此处工程“configure”只有“WIN32”的平台选项,没有“x64”平台选项,如果您要添加“x64”平台选项,其详细过程如下:

工程“configure”-->右键“属性”(-->配置属性)-->“配置管理器(O)”-->“项目上下文(选定要生成的或部署的项目配置)(R):”-->“平台”-->下拉“新建”-->“新建平台”选择“x64”-->“从此处复制设置(S):”选择“Win32”-->勾选“创建信的解决方案平台(C)”-->“确定”。

解决:模块计算机类型“x64”与目标计算机类型“X86”冲突 问题:工程“configure”-->右键“属性”(-->配置属性)-->“配置(C)”选择“所有配置”-->“平台(P)”选择“所有平台”

-->“配置属性”-->“链接器”-->“命令行”-->“其他选项(D)”删除“/MACHINE:I386 ”-->“确定”

-->“配置属性”-->“链接器”-->“所有选项”-->“附加选项”删除“/MACHINE:I386 %(AdditionalOptions)”-->“确定”。

5.3 双击“configure.exe”文件,进行“编译类型”以及“编译选项”的选择。

5.3.1 “编译类型”:在静态类型的选择共有3种,首先应排除“Static Single-threaded runtimes”,因为现在几乎不用了, Visual Studio 2010以上的版本好像都不提供该选项了。

剩余的两项,个人比较偏好“Static Multi-threaded DLL runtimes”,这也是Visual Studio创建“static”工程的默认选项。

5.3.2 “编译选项”:如果勾选“Generate utility projects with full paths instead of relative”项,则必须保证整个工程中不包含“中文路径”;个人建议该选项任何时候都不需要选择。

5.3.3 “编译选项”中不要勾选“Build 64-bit distribution”

5.4 解决方案升级:

5.4.1 复制“UpgradeToVS2012.cmd”为“UpgradeToVS2013.cmd”并将其内容中的替换为如下内容:

  1. @echo off
  2. REM This script upgrades the solution to VS2013 and fixes the MSB8012 error.
  3. FOR /F "tokens=3" %%A IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\PowerShell\1" /v Install ^| FIND "Install"') DO SET PowerShellInstalled=%%A
  4. IF NOT "%PowerShellInstalled%"=="0x1" GOTO NOT_INSTALLED
  5. call "%vs120comntools%vsvars32.bat"
  6. powershell -ExecutionPolicy Unrestricted .\build\UpgradeSolution.ps1 2013
  7. GOTO DONE
  8. :NOT_INSTALLED
  9. ECHO "This script needs powershell"
  10. :DONE
  11. PAUSE

5.4.2 执行“UpgradeToVS2013.cmd”,等待其执行直到出现“请按任意键继续...”时,按任意键结束升级。

5.5 解决方案修正:

5.5.1 字符集问题,即解决“pango-language-sample-table.h(551): error C2001: 常量中有换行符”问题:用“Notepad++”打开“ImageMagick-6.8.9\pango\pango\pango-language-sample-table.h”文件,在菜单“格式”中选择“以UTF-8格式编码”,保存。注意,不要用“转为UTF-8编码格式”!

5.5.2 项目依赖问题,即解决“无法打开输入文件“CORE_RL_pango_.lib””以及“无法打开输入文件“CORE_DB_pango_.lib””问题:

工程“UTIL_stream”-->右键“生成依赖项(B)”-->“项目依赖项(S)...”-->选项卡“依赖项”-->列表框“依赖于(D):”-->勾选工程“CORE_pango”-->“确定”

5.6 完整编译

解决方案-->右键“批生成(T)...”-->“选定要生成的项目配置(K):”-->勾选“项目”值为“All”,“平台”值为“Win32”的行-->“重新生成(R)”;

6 x64平台编译

6.1 将下载的源代码重新解压一份到其它目录,来进行x64平台的编译:
6.2 以下步骤同“5.2”至“5.3.2”
6.3 在“编译选项”中勾选“Build 64-bit distribution”
6.4 以下步骤同“5.4”
6.5 升级后的解决方案不能用来编译Win32(x86)平台,否则会出现很多头文件找不到的错误,原因是在此解决方案中Win32平台中所有工程属性的“配置属性”-->“C/C++”-->“常规”-->“附加包含目录”项为空。
6.6 由于升级后的解决方案的工程“All”没有“x64”的“解决方案平台”选项,编译不方便,所以请按如下操作添加:

6.6.1 工程“All”-->右键“属性”(-->配置属性)-->“配置管理器(O)”-->“项目上下文(选定要生成的或部署的项目配置)(R):”-->“项目”:“All”-->“平台”-->下拉“新建”-->“新建平台”选择“x64”-->“从此处复制设置(S):”选择“Win32”-->取消勾选“创建信的解决方案平台(C)”-->“确定”;

6.6.2

-->“配置(C)”选择“Release”-->“平台(P)”选择“x64”-->“配置管理器(O)”-->“项目”:“All”-->“平台”-->下拉选择“x64”-->勾选“生成”-->“关闭”;

-->“配置(C)”选择“Debug”-->“平台(P)”选择“x64”-->“配置管理器(O)”-->“项目”:“All”-->“平台”-->下拉选择“x64”-->勾选“生成”-->“关闭”;

-->“配置管理器(O)”-->“项目上下文(选定要生成的或部署的项目配置)(R):”-->“活动解决方案配置(C)”:“Release”-->“活动解决方案平台(P)”:“x64”-->“项目”:“All”-->“平台”-->下拉选择“x64”-->勾选“生成”-->“关闭”;

-->“配置管理器(O)”-->“项目上下文(选定要生成的或部署的项目配置)(R):”-->“活动解决方案配置(C)”:“Debug”-->“活动解决方案平台(P)”:“x64”-->“项目”:“All”-->“平台”-->下拉选择“x64”-->勾选“生成”-->“关闭”;

6.7 步骤同5.5
6.8 完整编译:

解决方案-->右键“批生成(T)...”-->“选定要生成的项目配置(K):”-->勾选“项目”值为“All”,“平台”值为“x64”的行-->“重新生成(R)”;

isual Studio 2013编译ImageMagick---转的更多相关文章

  1. 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法

    转自:http://blog.csdn.net/xiaochunzao/article/details/16987703 Visual Studio 2013 编译旧的 multi-byte char ...

  2. Visual Studio 2013 编译 64 位 Python 的 C 扩展 (使用 PyObject 包装)

    对于 32 位 Python 的 C 扩展,以前用过 mingW32 编译, 但是 mingW32 不支持 64 位 Python 的 C 扩展编译,详情可见 stackoverflow,这位前辈的大 ...

  3. Visual Studio 2013编译Tesseract 3.04

    文章目录 去年时候使用了VS2008编译了Tesseract 3.02版本,主要是参考了一份官方文档,但是对于目前的最新版本并没有给出说明. 本文主要参考了Paul Vorbach的How to bu ...

  4. Windows下Visual Studio 2013编译Lua 5.2.3

    1.创建一个Visual C++的Empty Project,如果需要支持Windows XP将Platform Toolset设置为Visual Studio 2013 - Windows XP ( ...

  5. Visual Studio 2013 编译CEF步骤

    If you'd like to build the Chromium Embedded Framework (a wrapper for Chromium, for creating browser ...

  6. Visual Studio 2013编译Mozilla NPAPI 示例注意事项

    1.Platform Toolset设置Visual Studio 2013 - Windows XP (v120_xp). 2.Character Set设置Use Multi-Byte Chara ...

  7. Windows下Visual studio 2013 编译 Audacity

    编译的Audacity版本为2.1.2,由于实在windows下编译,其源代码可以从Github上取得 git clone https://github.com/audacity/audacity. ...

  8. 解决visual studio 2013编译过程中存在的无法打开kernel.lib问题

    1. 出现此类问题的原因 由于原visual studio文件中的安装中出现问题,所以原有的SDK(soft development kits)文件出现缺失: 2. 解决方法1 重新下载SDK工具,安 ...

  9. Visual Studio 2013环境下操作vc6/vc7/vc8等低版本平台项目【编译|生成|调试】

    现代化的开发环境,微软一直在推出更新换代,我们所处的技术环境在日新月异的变化:不过在中国多数人们一边疲惫的追赶着时代的步伐,一边坚守着自己所获悉所掌握的那些紧吧吧的知本.对技术工具的掌握并非他们所想要 ...

随机推荐

  1. 个人网站html5雪花飘落代码JS特效下载

    如何给自己的网站/页面添加雪花代码.特效呢?有的网站配合自己的主题模板添加雪花飘落效果挺好看的.特别是与冬天季节相关的主题,很多的博客空间都加了雪花的效果.在网上搜索了几种雪花效果,做了简单的修改,在 ...

  2. List 常用方法解析

    1.Count属性 (获得List中元素数目) 2.Add( ) 在List中添加一个对象的公有方法 3.AddRange( ) 公有方法,在List尾部添加实现了ICollection接口的多个元素 ...

  3. SweetAlert详解

    官方给出的SweetAlert介绍是:SweetAlert可以替代JavaScript原生的alert和confirm等函数呈现的弹出提示框,它将提示框进行了美化,并且允许自定义,支持设置提示框标题. ...

  4. pymmseg 安装方法以及乱码解决

    pymmseg-cpp is a Python port of the rmmseg-cpp project. rmmseg-cpp is a MMSEG Chinese word segmentin ...

  5. Mysql重复数据查询置为空

    前两天产品有个需求,相同的商品因为价格不同而分开展示,但是明细还是算一条明细,具体区分展示出商品的价格和数量信息,其他重复的商品信息要置空. 需求并不难,用程序代码循环处理就可以了.但是后面涉及到打印 ...

  6. centos7安装nginx(基础篇)

    安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 CentOS 7 作为安装环境. 一. gcc 安装安装 nginx 需要先 ...

  7. struct timeval和gettimeofday

    struct timeval和gettimeofday() struct timeval结构体在time.h中的定义为: struct timeval { time_t tv_sec; /* Seco ...

  8. python面向对象三大特性之一封装

    一.什么是封装 在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其 含义是其他程序无法调用. 要了解封装,离不开“私有化”,就是将类或者 ...

  9. IOS让自定义类是用下标

    在ios中,有个非常有用的特性,就是可以为自己写的类增加下标访问功能. 如果我们自己的类中有个数组items,我们想直接给类加下标的方式来访问这个数组的元素,就像访问系统的数组一样,其实只要增加一个方 ...

  10. 【LibreOJ 6279】 数列分块入门 3 (分块)

    传送门 code: //By Menteur_Hxy #include<cstdio> #include<iostream> #include<algorithm> ...