目录

第1章简介    1

第2章命令行编译    2

2.1 编译    2

2.1.1 使用VC++2010编译    2

2.1.2 使用VC++6编译    4

2.2 生成的文件    5

第3章 IDE编译    7

3.1 编译时重定向    7

3.2 编译需要的文件    7

3.3 编译时定义的宏    8

第1章简介

libtiff是一个用于读写.tif文件的开源C函数库。

它的下载网址如下:

ftp://ftp.remotesensing.org/pub/libtiff/

第2章命令行编译

2.1 编译

解压libtiff 4.0.4至W:\tiff-4.0.4目录。目录结构如下图所示:

再根据W:\tiff-4.0.4复制出tiff-4.0.4-vc6和tiff-4.0.4-vc2010,如下图所示:

tiff-4.0.4-vc6        将使用vc6编译

tiff-4.0.4-vc2010    将使用vc2010编译

2.1.1 使用VC++2010编译

"开始"菜单【Microsoft Visual Studio 2010】【Visual Studio Tools】下有四个快捷方式,它们都可以打开DOS命令窗口,如下图所示:

这四个快捷方式的含义如下:

Visual Studio Command Prompt (2010)调用32位的编译程序,生成32位的程序;

Visual Studio Itanium Cross Tools Command Prompt (2010) 调用32位的编译程序,生成64位的Itanium程序;

Visual Studio x64 Cross Tools Command Prompt (2010) 调用32位的编译程序,生成64位的x64程序;

Visual Studio x64 Win64 Command Prompt (2010) 调用64位的编译程序,生成64位的x64程序。

如果要编译生成32位的程序,可运行Visual Studio Command Prompt (2010);

如果要编译生成64位的x64程序,可运行Visual Studio x64 Cross Tools Command Prompt (2010)或Visual Studio x64 Win64 Command Prompt (2010),后者要求Windows是64位的;

如果要编译生成64位的Itanium程序,可运行Visual Studio Itanium Cross Tools Command Prompt (2010)。

这里编译生成32位的程序,所以运行Visual Studio Command Prompt (2010)。

依次运行如下几行命令

cd /d W:\tiff-4.0.4-vc2010

nmake /f makefile.vc

如下图所示:

等待一会儿,编译工作就完成了,如下图所示:

2.1.2 使用VC++6编译

打开DOS命令窗口,然后依次运行如下几行命令

"C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"

cd /d W:\tiff-4.0.4-vc6

nmake /f makefile.vc

如下图所示:

等待一会儿,编译工作就完成了,如下图所示:

2.2 生成的文件

上一节编译都生成了哪些文件?使用Beyond Compare软件比较一下就知道了,如下图所示:

最重要的几个文件都在libtiff目录下:

libtiff.dll        libtiff动态库

libtiff_i.lib    libtiff动态库的导入库

libtiff.lib        libtiff静态库

还有tif_config.h和tiffconf.h,它们是由tif_config.vc.h和tiffconf.vc.h复制而得到的。

使用 nmake /f makefile.vc clean清理编译产生的文件之前,请把上述重要的文件复制出来,否则将会被删除掉。

第3章 IDE编译

3.1 编译时重定向

上一章的编译很简单,但是有几个问题需要搞清楚:

1、编译时用到了哪些文件?

2、编译时定义了哪些宏?

为此,在上一章编译时把命令nmake /f makefile.vc更改为

nmake /f makefile.vc clean all > vc.txt

就是编译前清理一下,然后把输出重定向到文件vc.txt里。

编译完成后,查看vc.txt文件

编译用到了哪些文件,定义了哪些宏,一目了然。

3.2 编译需要的文件

port和tools的编译不是重点,这里只说明libtiff的编译。它需要如下文件:

1、W:\tiff-4.0.4-vc6\libtiff\tif_*.c,但不包括 tif_lzma.c 和 tif_win32.c;

2、W:\tiff-4.0.4-vc6\libtiff\tif_stream.cxx

总计39个文件。

3.3 编译时定义的宏

编译时定义的宏有14个,具体如下:

_CRT_SECURE_NO_DEPRECATE

AVOID_WIN32_FILEIO

CCITT_SUPPORT

CHECK_JPEG_YCBCR_SUBSAMPLING

DEFAULT_EXTRASAMPLE_AS_ALPHA

FILLODER_LSB2MSB

LOGLUV_SUPPORT

LZW_SUPPORT

NEXT_SUPPORT

PACKBITS_SUPPORT

STRIPCHOP_DEFAULT=TIFF_STRIPCHOP

STRIP_SIZE_DEFAULT=8192

THUNDER_SUPPORT

TIF_PLATFORM_CONSOLE

有了以上信息,IDE里编译libtiff就是非常简单的事情了。

vc++编译libtiff4.0.4的更多相关文章

  1. VC++编译MPIR 2.7.0

    目录 第1章编译    2 1.1 简介    2 1.2 下载    3 1.3 解决方案    4 1.4 创建项目    5 1.5 复制文件树    6 1.6 不使用预编译头文件    8 ...

  2. 用VC编译lua源码,生成lua语言的解释器和编译器

    用VC编译lua源码,生成lua语言的解释器和编译器 1.去网址下载源码 http://www.lua.org/download.html 2.装一个VC++,我用的是VC6.0 3.接下来我们开始编 ...

  3. VC++编译GSL

    目录 第1章 VC++    1 1.1 修改行结束符    1 1.2 修改#include "*.c" 为 #include "*.inl"    2 1. ...

  4. 编译mapnik(win7 环境下vs2008编译mapnik 0.7.1 成功)

    编译mapnik(win7 环境下vs2008编译mapnik 0.7.1 成功) ------by  wangsh 2012.02.22 Mapnik 是一个开源的 Python/C++ 地图渲染引 ...

  5. VC编译连接选项详解

    VC编译连接选项详解 大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解.原因是多方面的.大多数情况下,我们只停留在“使用”它,而不会想去“了解”它.因为它只是一个工具,我们宁可把更多的精力 ...

  6. 迁移到MSYS2 与 Qt 工具链注意的几个事情(g++在链接时,符号依赖项查找遵循从左至右的顺序,但qmake会自动合并造成错误。使用脚本给Mingw32-make创造出一个局部的VC编译环境)

    Microsoft Visual Studio 2015社区版提供了强大的开发体验,且 Qt 提供了预编译版本.然而,由于客户提出兼容Windows XP ~ Windows 8.1 这样宽泛的环境要 ...

  7. 编译Qt5.0连接MySql5.5数据库的驱动(5.0版本的编译,我记得5.2开始自带了)

    第一步 1.准备好Mysql数据库安装文件,Qt5.0完整的离线安装包,以及Qt5.0的完整的源代码.安装好程序,假设Mysql的安装路径为:C:\MySQL5.5,Qt5.0的安装路径:C:\Qt\ ...

  8. VC 编译 MATLAB 的 mex 文件

    VC 编译 MATLAB 的 mex 文件mex 文件是 MATLAB 调用其他程序设计语言程序或算法的接口.在 Windows 环境中,mex 文件是扩展文件名为 DLL 的动态链接库,可以在 m ...

  9. 在Ubuntu Server14.04上编译Android6.0源码

    此前编译过Android4.4的源码,但是现在Android都到了7.0的版本,不禁让我感叹Google的步伐真心难跟上,趁这周周末时间比较充裕,于是在过去的24小时里,毅然花了9个小时编译了一把An ...

随机推荐

  1. JavaScript 中的Object的使用详解笔记(一)

    昨天的学习笔记,今天更新上.第三遍看oop,还是理解的比较到位了.   1.JavaScript的组成:ECMAScript(最新6) + DOM + BOM 2.数组与对象的应用: object的基 ...

  2. ecshop商品分类页获取相册列表方法

    第1步:找到根目录的category.php文件,查找约:486行左右(注意这不是准确位置,看实际的哦),找到这个函数: /** * 获得分类下的商品 * * @access public * @pa ...

  3. 免费PHP WEB环境套件介绍

    PHPNOW--Apache + PHP + MySQL(windows) easyphp--Apache + PHP + MySQL+phpmyadmin(windows) xampp(中文站点)- ...

  4. CodeForces 471C MUH and House of Cards

    MUH and House of Cards Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & % ...

  5. Cheatsheet: 2015.02.01 ~ 02.28

    Other API Best Practices: API Management Rewriting History with Git Rebase .NET Announcing Microsoft ...

  6. CUBRID学习笔记 20 默认的并发规则

    默认的设置是ISOLATION LEVEL 3 语法 SET TRANSACTION ISOLATION LEVEL 3; 最笨.官网的图不错看图吧 session 1 session 2 ;auto ...

  7. Linux命令工具 top详解

    Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...

  8. STORM_0003_linux_zookeeper_storm_遇到的几个问题

    1. 首先是花费时间在windows的eclipse下面安装fatjar因为是新版的缘故,装了很久才装上. 后来发现其实mvn可以打包出没有依赖的jar包 2. 然后是按照在ubuntu环境中的mvn ...

  9. Webbrowser控件判断网页加载完毕的简单方法 (转)

    摘自:http://blog.csdn.net/cometnet/article/details/5261192 一般情况下,当ReadyState属性变成READYSTATE_COMPLETE时,W ...

  10. LightOJ::1077 -----奇妙的最大公约数

    题目:http://www.lightoj.com/volume_showproblem.php?problem=1077 题意:在平面上, 给出两个点的坐标 例如:(x, y) 其中x, y 都是整 ...