這裏列出 build libtiff 的完整步驟 (用VC 2008)
1. 下載libtiff 3.8.2
2. 解開ZIP檔 如 E:\tiff-3.8.2
3. Delete 或備份 \tiff-3.8.2\libtiff\tiffconf.h
(build 的動作會自動的把 libtiff 目錄下的 *.vc copy 成正常的版本 所以只要delete 原來的tiffconf.h就行了)
copy tif_config.h.vc tif_config.h
copy tiffconf.h.vc tiffconf.h
4. 然後在 tiff-3.8.2 下 nmake /f makefile.vc
(把JPEG_SUPPORT, PIXARLOG_SUPPORT, and ZIP_SUPPORT 關掉可以省掉一些麻煩,
不然的話 要自己先build zlib 和 jpeg6b也行)
build jpegv6b (for windows)
1. Extract jpegv6bsrc
2. copy jconfig.vc jconfig.h
3. nmake /f makefile.vc
build zlib 1.2.3
1. Extract
2. in zlib directory, nmake /f win32/Makefile.msc
modify tiff-3.8.2 nmake.opt
## Uncomment and edit following lines to enable JPEG support.
#
JPEG_SUPPORT = 1
JPEGDIR = ../../jpeg-6b
JPEG_INCLUDE = -I$(JPEGDIR)
JPEG_LIB = $(JPEGDIR)/libjpeg.lib
## Uncomment and edit following lines to enable ZIP support# (required for Deflate compression and Pixar log-format)
#
ZIP_SUPPORT = 1
ZLIBDIR = ../../zlib-1.2.3
ZLIB_INCLUDE = -I$(ZLIBDIR)
ZLIB_LIB = $(ZLIBDIR)/zlib.lib
## Uncomment following line to enable Pixar log-format algorithm# (Zlib required).
#
PIXARLOG_SUPPORT = 1
build libtiff link 時會出錯,應該是連結方式不同(libtiff, libjpeg, zlib)
動態和靜態
然後build libtiff
雖然可以link, 但是會出現 warning LNK4098
LINK : warning LNK4098: defaultlib 'LIBCMTD' conflicts with use of other libs; use /NODEFAULTLIB:library
這個必須解決
應該是使用的版本不對 (如一個是multithread, 一個是single thread, debug和非debug)
查了一下 發現 libtiff和zlib 都是用 /md (multithreaded dll, use msvcrt.lib)選項編譯的 而libjpeg 預設是用 /MTd
所以會有問題
要修改 jpeg-6b\makefile.vc
CFLAGS= $(cflags) $(cdebug) $(cvars) -I.
改成
CFLAGS= $(cflags) $(cdebug) $(cvarsdll) -I.
然後make的時候 要下
nmake nodebug=1 /f makefile.vc
就會以/MD選項編譯
還有tiff-3.8.2\nmake.opt 中 OPTFLAGS /GX 選項改成/EHsc 免得一堆
depreciated warning 跑出來
完美的Compile!!
!! 新增 Build Libtiff under WINCE (for MIPS)
以上所Build 出來的是Windows 的版本
忘了講到重點 如何build WinCE 的版本
1. 使用Embedded Visual C++ 4.0
打開 Command Prompt window
進入 \Program Files\Microsoft eMbedded C++ 4.0\EVC\wce500\bin
set SDKROOT=C:\Program Files\Windows CE Tools ( Standard SDK for WINCE 安裝的地方)
run WCEMIPSII.BAT
設定好環境, 再來修改nmake.opt 這個檔案
設定 CC=clmips, Linker 的選項加 /SUBSYSTEM:WINDOWSCE
Compiler option 加入 /D _MIPS_ /D UNICODE
就可以編譯 libtiff了, happy compiling!
2. 使用Visual Studio 2008