下载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)