libtiff编译
windows上编译libtiff
1、下载:tiff-4.0.3.zip http://download.osgeo.org/libtiff/
2、将libtiff 4.0.3解压到[工作目录]/tiff/tiff-4.0.3
3、修改部分编译的参数
4.此后,可能会遇到很多个bug;
如果你遇到错误说没有libjpeg库,这是因为你的电脑上没有libjpeg库(如果你的电脑上有,那么你就不会出现这种情况)。如果你的电脑没有其他的库(如zip格式支持),可能会报其他的类似错误。
对于Release,编辑tiff/tiff-4.0.3里面的nmake.opt如下选项,去掉注释:
JPEG_SUPPORT = 1
JPEGDIR = [工作目录]/jpeg/libjpeg
JPEG_INCLUDE = -I$(JPEGDIR)
JPEG_LIB = $(JPEGDIR)/Release/libjpeg.lib
ZIP_SUPPORT = 1
ZLIBDIR = [工作目录]/zlib/install
ZLIB_INCLUDE = -I$(ZLIBDIR)/include
ZLIB_LIB = $(ZLIBDIR)/lib/zlib.lib
PIXARLOG_SUPPORT = 1
OPTFLAGS =/Ox /MT /EHsc /W3 /D_CRT_SECURE_NO_DEPRECATE
LD=link /nologo /MACHINE:x86
DLLNAME= libtiff.dll
对于Debug,按如下编辑:
JPEG_SUPPORT = 1
JPEGDIR = [工作目录]/jpeg/libjpeg
JPEG_INCLUDE = -I$(JPEGDIR)
JPEG_LIB = $(JPEGDIR)/Debug/libjpeg.lib
ZIP_SUPPORT = 1
ZLIBDIR = [工作目录]/zlib/install
ZLIB_INCLUDE = -I$(ZLIBDIR)/include
ZLIB_LIB = $(ZLIBDIR)/lib/zlibd.lib
PIXARLOG_SUPPORT = 1
OPTFLAGS = /Zi /MTd /EHsc
LD=link /nologo /MACHINE:x86 /debug
DLLNAME= libtiff_d.dll
3、编译
在Visual Studio 2013命令行里面输入,:
1.【到D:\test\tiff-4.0.3】: cd D:\test\tiff-4.0.3
3.【编译】:nmake /f makefile.vc
编译后会得到两种库:libtiff.lib 和 libtiff_i.lib + libtiff.dll,两种应该都可以使用,我用的是后种方式,可以。
官方下载地址:http://www.remotesensing.org/libtiff/
转自:http://www.cnblogs.com/johenny/archive/2013/06/04/3116681.html
1.下载源码,测试用的是tiff-4.0.1版本,解压到D:盘下
2.cmd 进入tiff-4.0.1/libtiff目录
3.运行vcvarsall.bat脚本,设置nmake的路径
* 如果安装在C盘,cmd不认空格,查看短路径用dir /x命令查看
* 如果没有权限可以把VS2010/VC目录拷贝到D:盘再运行第三点的脚本
*如果要编译x64版本,需要在脚本命令后加入空格x64
4.运行nmake /f makefile.vc
*tiff-4.0.1目录下也有makefile.vc这个文件,libtiff目录下也有,2个是一样的
*nmake会编译一个静态库 和 一个动态库2个版本。
我本机运行的命令是:
1. cd D:\tiff-4.0.1\libtiff
2.D:\tiff-4.0.1\libtiff > D:\VS2010\VC\vcvarsall.bat x64 * 编译64位版本,如果32位就不用加参数,默认32位
3.nmake /f makefile.vc
结束去目录查看,有2个lib 1个dll.
转自:http://www.cnblogs.com/yaoyansi/articles/1867346.html
下载jpeg-6b-4-src.zip,
解压缩至E:\dev\tools\GnuWin32,则E:\dev\tools\GnuWin32\src\jpeg\6b\jpeg-6b-src下是源代码
我的步骤如下:
1.libtiff依赖于jpeg,所以先编译jpeg(参考http://spinlock.blog.51cto.com/607469/138289)
- 把 jconfig.vc 改名为 jconfig.h
- 把 makelib.ds 改名为 jpeg.mak
- 使用VC++构建jpeg.mak
(但我右键单击jpeg.mak,选择用MSVS2005打开失败)我的办法是:
虽然jpeg.mak用MSVS2005打开失败,但此时jpeg.vcproj已经产生,只是里面的platform,configruation参数不正确(所以无法用MSVC打开)。解决办法是,用VC建一个简单的工程A,把A.vcproj(用notepad.exe打开)里面的platform,configruation参数拷贝到jpeg.vcproj(用notepad.exe打开)里。
重新打开jpeg.vcproj,选择release模式,根据jpeg.mak的参数重新设置jpeg.vcproj参数:
生成为lib
preprocessor:WIN32;_WIN32;NDEBUG;_WINDOWS;
预编译头:$(INTDIR)/jpeg.pch
输出文件:$(OUTDIR)\jpeg.lib
4.编译,遇到n多错误INT32未定义。
(http://hi.baidu.com/loveboa/blog/item/4b7af70356ece8e909fa9377.html))
解决方法:
在jmorecfg.h文件里
#endif /* HAVE_ALL_INTS */
后面增加:
#include <windows.h>
5.再次编译jpeg.vcproj,一切ok。
编译libtiff
下载tiff-3.8.2-1-src,安装到libtiff\3.8.2\目录下,安装后libtiff\3.8.2\src\tiff\3.8.2\tiff-3.8.2-src下有makefile.vc文件。
1.修改libtiff\3.8.2\src\tiff\3.8.2\tiff-3.8.2-src\nmake.opt
JPEG_SUPPORT = 1
JPEGDIR = E:/dev/tools/GnuWin32/src/jpeg/6b/jpeg-6b-src
JPEG_INCLUDE = -I$(JPEGDIR)
JPEG_LIB = $(JPEGDIR)/Release/jpeg.lib
ZIP_SUPPORT = 1
ZLIBDIR = E:/dev/tools/zlib
ZLIB_INCLUDE = -I$(ZLIBDIR)/zlib (因为libtiff用的是#include “zlib.h”)
ZLIB_LIB = $(ZLIBDIR)/zlib.lib
2.打开cmd.exe
>cd libtiff\3.8.2\src\tiff\3.8.2\tiff-3.8.2-src
>%comspec% /k ""D:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"" x86
(如果是x64的话运行%comspec% /k ""D:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"" x64)
>nmake /f makefile.vc
虽然最后会提示有link error,但我们需要的lib 和dll 都已经编译出来了:
lib: libtiff\3.8.2\src\tiff\3.8.2\tiff-3.8.2-src\libtiff\libtiff.lib
dll: libtiff\3.8.2\src\tiff\3.8.2\tiff-3.8.2-src\libtiff\libtiff.dll 和libtiff_i.lib
(END)
编译LibTiff
转自:http://www.gispower.org/article/opengis/2009/38/09381954353B0ECBGB6CID0BG1EH9I.html
编译LibTiff
将LibTiff解压到C:\ tiff-3.8.2,也可以其它路径。打开“Visual Studio 2005 命令提示”工具,该工具位于“开始\程序\Microsoft Visual Studio 2005\Visual Studio Tools”。或者直接打开“cmd”窗口,但需要注册VC编译环境,使用如下代码(与你机子的VS安装路径有关):
E:\program files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat
在命令提示符下,用“cd”命令定位到C:\ tiff-3.8.2,输入以下命令:
nmake /f makefile.vc
如果提示缺少jpeglib.h导致编译失败,这时请修改../libtiff/tiffconf.h.vc, 把其中的 /* #undef JPEG_SUPPORT */,/* #undef OJPEG_SUPPORT*/ 中的注释/* */去掉。这是因为机子上缺少 libjpeg 库,再删掉 .../libtiff/ 下的所有 .obj 文件。 然后再编译,这样就可以编译成功。