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 ...
随机推荐
- sqlitehelper封装
appsettings <configuration> <appSettings> <add key="ConnectionString&q ...
- C#闪屏
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- oracle dual 表
dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录.我们可以用它来做很多事情,如下: 1.查看当前用户,可以在 SQL Plus中执行下面语句 sele ...
- Django1.9 Python3.4出现Error loading MySQLdb
linux Errorloading MySQLdb module: No module named MySQLdb 这是因为目前 MySQLdb 还不支持 python3.x ,开源无人维护哈 之前 ...
- find command in linux terminal
Say you want to search for files with keyword as "keyword". find / -name keyword 2> /de ...
- 模仿$.Callbacks实现
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- LTE Module User Documentation(翻译5)——Mobility Model with Buildings
LTE用户文档 (如有不当的地方,欢迎指正!) 8 Mobility Model with Buildings 我们现在通过例子解释如何在 ns-3 仿真程序中使用 buildings 模型(特别 ...
- ZOJ-2342 Roads 二分图最小权值覆盖
题意:给定N个点,M条边,M >= N-1.已知M条边都有一个权值,已知前N-1边能构成一颗N个节点生成树,现问通过修改这些边的权值使得最小生成树为前N条边的最小改动总和为多少? 分析:由于计算 ...
- iOS - OC NSKeyedArchiver 数据归档
前言 @interface NSKeyedArchiver : NSCoder @interface NSKeyedUnarchiver : NSCoder 在 OC 语言中,归档是一个过程,即用某种 ...
- box-shadow使用指南
Summary The box-shadow property describes one or more shadow effects as a comma-separated list. It e ...