vc++编译libtiff4.0.4
目录
第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的更多相关文章
- 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 ...
- 用VC编译lua源码,生成lua语言的解释器和编译器
用VC编译lua源码,生成lua语言的解释器和编译器 1.去网址下载源码 http://www.lua.org/download.html 2.装一个VC++,我用的是VC6.0 3.接下来我们开始编 ...
- VC++编译GSL
目录 第1章 VC++ 1 1.1 修改行结束符 1 1.2 修改#include "*.c" 为 #include "*.inl" 2 1. ...
- 编译mapnik(win7 环境下vs2008编译mapnik 0.7.1 成功)
编译mapnik(win7 环境下vs2008编译mapnik 0.7.1 成功) ------by wangsh 2012.02.22 Mapnik 是一个开源的 Python/C++ 地图渲染引 ...
- VC编译连接选项详解
VC编译连接选项详解 大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解.原因是多方面的.大多数情况下,我们只停留在“使用”它,而不会想去“了解”它.因为它只是一个工具,我们宁可把更多的精力 ...
- 迁移到MSYS2 与 Qt 工具链注意的几个事情(g++在链接时,符号依赖项查找遵循从左至右的顺序,但qmake会自动合并造成错误。使用脚本给Mingw32-make创造出一个局部的VC编译环境)
Microsoft Visual Studio 2015社区版提供了强大的开发体验,且 Qt 提供了预编译版本.然而,由于客户提出兼容Windows XP ~ Windows 8.1 这样宽泛的环境要 ...
- 编译Qt5.0连接MySql5.5数据库的驱动(5.0版本的编译,我记得5.2开始自带了)
第一步 1.准备好Mysql数据库安装文件,Qt5.0完整的离线安装包,以及Qt5.0的完整的源代码.安装好程序,假设Mysql的安装路径为:C:\MySQL5.5,Qt5.0的安装路径:C:\Qt\ ...
- VC 编译 MATLAB 的 mex 文件
VC 编译 MATLAB 的 mex 文件mex 文件是 MATLAB 调用其他程序设计语言程序或算法的接口.在 Windows 环境中,mex 文件是扩展文件名为 DLL 的动态链接库,可以在 m ...
- 在Ubuntu Server14.04上编译Android6.0源码
此前编译过Android4.4的源码,但是现在Android都到了7.0的版本,不禁让我感叹Google的步伐真心难跟上,趁这周周末时间比较充裕,于是在过去的24小时里,毅然花了9个小时编译了一把An ...
随机推荐
- JavaScript 中的Object的使用详解笔记(一)
昨天的学习笔记,今天更新上.第三遍看oop,还是理解的比较到位了. 1.JavaScript的组成:ECMAScript(最新6) + DOM + BOM 2.数组与对象的应用: object的基 ...
- ecshop商品分类页获取相册列表方法
第1步:找到根目录的category.php文件,查找约:486行左右(注意这不是准确位置,看实际的哦),找到这个函数: /** * 获得分类下的商品 * * @access public * @pa ...
- 免费PHP WEB环境套件介绍
PHPNOW--Apache + PHP + MySQL(windows) easyphp--Apache + PHP + MySQL+phpmyadmin(windows) xampp(中文站点)- ...
- CodeForces 471C MUH and House of Cards
MUH and House of Cards Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & % ...
- Cheatsheet: 2015.02.01 ~ 02.28
Other API Best Practices: API Management Rewriting History with Git Rebase .NET Announcing Microsoft ...
- CUBRID学习笔记 20 默认的并发规则
默认的设置是ISOLATION LEVEL 3 语法 SET TRANSACTION ISOLATION LEVEL 3; 最笨.官网的图不错看图吧 session 1 session 2 ;auto ...
- Linux命令工具 top详解
Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...
- STORM_0003_linux_zookeeper_storm_遇到的几个问题
1. 首先是花费时间在windows的eclipse下面安装fatjar因为是新版的缘故,装了很久才装上. 后来发现其实mvn可以打包出没有依赖的jar包 2. 然后是按照在ubuntu环境中的mvn ...
- Webbrowser控件判断网页加载完毕的简单方法 (转)
摘自:http://blog.csdn.net/cometnet/article/details/5261192 一般情况下,当ReadyState属性变成READYSTATE_COMPLETE时,W ...
- LightOJ::1077 -----奇妙的最大公约数
题目:http://www.lightoj.com/volume_showproblem.php?problem=1077 题意:在平面上, 给出两个点的坐标 例如:(x, y) 其中x, y 都是整 ...