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 ...
随机推荐
- Mysql--学习笔记(==》简单查询三)
-- 查看查询数据显示SELECT * FROM student; -- 显示一部分信息的查询SELECT sname 姓名,sscore 成绩,saddress 家庭住址 FROM student; ...
- CentOS6 启动流程图文解剖
我们在使用Linux操作系统的时候,我们只需按下电源键,等待,然后输入账户和密码就可以使用Linux操作系统了.那么在按下电源到输入账号和密码之前,操作系统都做了些什么?下面就来讲述在这段时间发生的动 ...
- Intent官方教程(2)Intent的两种类型
Intent Types There are two types of intents: Explicit intents specify the component to start by name ...
- 分分钟知道tiles框架是干嘛的
分分钟知道tiles框架是干嘛的 http://blog.sina.com.cn/s/blog_a123d4d50101792d.html参考上面的文章,简单明了.让你一下子就知道这个是用来做什么的. ...
- c++中char*\wchar_t*\string\wstring之间的相互转换
string U2A(const wstring& str)//Unicode字符转Ascii字符 { string strDes; if ( str.empty() ) goto __end ...
- Python3基础 assert关键字 成功啥事没有,失败了就报错
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- git push 403
1. 在github上新建一个空项目. 2. git clone 到本地仓库. 3. git add [一些文件]. 4. git commit -m "first commit" ...
- Create Timer Example To Show Image Presentation in Oracle Forms
Suppose you want to change multiple images after a specified time in home screen of your oracle form ...
- Ubuntu 14.04中文输入法的安装
Ubuntu默认自带的中文输入法是IBUS框架的ibus-pinyin,IBUS-Bopomofo等.对于习惯于搜狗,紫光华宇,谷歌拼音的我们可能有点使用不习惯.下面就是安装常用的IBUS中文输入法. ...
- 你不知道的css中的expression
expression是在IE5版本之后支持使用的,用来把CSS属性和Javascript脚本关联起来,[这里的CSS属性可以是元素固有的属性,也可以是自定义属性.]是动态设置CSS属性的强大方法,但也 ...