2006.08.11 05:47 "[Tiff] Problem building libtiff3.dll with version 3.8.2 win32", by arnaud janc

Hi,

I try to compile libtiff 3.8.2 for win32 but still have problem on building libtiff3.dll. Here is the message of error I get:

o2dll -o libtiff.dll -l libtiff tif_aux.o tif_close.o tif_codec.o tif_color.o tif_compress.o tif_dir.o tif_dirinfo.o tif_dirread.o tif_dirwrite.o tif_dumpmode.o tif_error.o tif_extension.o tif_fax3.o tif_fax3sm.o tif_flush.o tif_getimage.o tif_jpeg.o tif_luv.o tif_lzw.o tif_next.o tif_ojpeg.o tif_open.o tif_packbits.o tif_pixarlog.o tif_predict.o tif_print.o tif_read.o tif_strip.o tif_swab.o tif_thunder.o tif_tile.o tif_unix.o tif_version.o tif_warning.o tif_write.o tif_zip.o libtiff-dllversion.o libtiff-dll-res.o -no-undefined -version-number 3:8:2 -L/c/progra~1/GnuWin32/lib -L/c/progra~1/GnuWin32/lib -L/c/progra~1/GnuWin32/lib -Wl,--major-image-version=3 -Wl,--minor-image-version=8 -ljpeg -lz

GCC = "gcc.exe"
DRIVER = "gcc.exe"
DRIVER = "gcc.exe"

LIBOBJECTS = " tif_aux.o tif_close.o tif_codec.o tif_color.o tif_compress.o tif_dir.o tif_dirinfo.o tif_dirread.o tif_dirwrite.o tif_dumpmode.o tif_error.o tif_extension.o tif_fax3.o tif_fax3sm.o tif_flush.o tif_getimage.o tif_jpeg.o tif_luv.o tif_lzw.o tif_next.o tif_ojpeg.o tif_open.o tif_packbits.o tif_pixarlog.o tif_predict.o tif_print.o tif_read.o tif_strip.o tif_swab.o tif_thunder.o tif_tile.o tif_unix.o tif_version.o tif_warning.o tif_write.o tif_zip.o libtiff-dllversion.o" ltversinfo = "11:2:8"

ltversnum = "3:8:2"
ltversion = "11:2:8"
Using resource object file: libtiff-dll-res.o
Using definitions file: libtiff.def
GCC = "gcc.exe"
DRIVER = "gcc.exe"

Creating dynamic library libtiff3.dll and import library ./libtiff.dll.a

Creating library file: ./libtiff.dll.a

tif_aux.o(.text+0x60): In function `TIFFCheckMalloc':

c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_aux.c:49: undefined reference to `_imp__TIFFErrorExt'

tif_aux.o(.text+0x6f):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_aux.c:46: undefined reference to `_imp___TIFFmalloc'

tif_aux.o(.text+0xfb): In function `TIFFDefaultTransferFunction':

c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_aux.c:66: undefined reference to `_imp___TIFFmalloc'

tif_aux.o(.text+0x1bd):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_aux.c:75: undefined reference to `_imp___TIFFmalloc'
tif_aux.o(.text+0x200):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_aux.c:90: undefined reference to `_imp___TIFFfree'
tif_aux.o(.text+0x20f):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_aux.c:88: undefined reference to `_imp___TIFFfree'
tif_aux.o(.text+0x21e):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_aux.c:86: undefined reference to `_imp___TIFFfree'
tif_aux.o(.text+0x232):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_aux.c:77: undefined reference to `_imp___TIFFmemcpy'
tif_aux.o(.text+0x23d):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_aux.c:78: undefined reference to `_imp___TIFFmalloc'
tif_aux.o(.text+0x256):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_aux.c:80: undefined reference to `_imp___TIFFmemcpy'

tif_aux.o(.text+0x2cd): In function `TIFFVGetFieldDefaulted':

c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_aux.c:108: undefined reference to `_imp__TIFFVGetField'

tif_aux.o(.text+0x4c2):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_aux.c:210: undefined reference to `_imp__TIFFErrorExt'

tif_close.o(.text+0x41): In function `TIFFCleanup':

c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_close.c:54: undefined reference to `_imp__TIFFFreeDirectory'

tif_close.o(.text+0xe4):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_close.c:90: undefined reference to `_imp___TIFFfree'

tif_close.o(.text+0xfa):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_close.c:93: undefined reference to `_imp___TIFFfree'

tif_close.o(.text+0x124):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_close.c:85: undefined reference to `_imp___TIFFfree'

tif_close.o(.text+0x12d):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_close.c:86: undefined reference to `_imp___TIFFfree'

tif_close.o(.text+0x16f):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_close.c:70: undefined reference to `_imp___TIFFfree'

tif_close.o(.text+0x1a4):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_close.c:65: more undefined references to `_imp___TIFFfree' follow

tif_close.o(.text+0x1e0): In function `TIFFCleanup':

...
...

c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_zip.c:328: undefined reference to `_imp___TIFFmalloc'

tif_zip.o(.text+0x7d0):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_zip.c:341: undefined reference to `_imp__TIFFMergeFieldInfo'

tif_zip.o(.text+0x8a8):c:/Program Files/GnuWin32/src/tiff/3.8.2/tiff-3.8.2/libtiff/../../tiff-3.8.2-src/libtiff/tif_zip.c:372: undefined reference to `_imp__TIFFErrorExt'

Error: Dynamic library libtiff3.dll does not exist.

What I got in directory libtiff/.libs is:

libtiff.def
which contains following text:

; c:\mingw\bin\dlltool.exe --output-def=libtiff.def tif_aux.o tif_close.o tif_codec.o tif_color.o tif_compress.o tif_dir.o tif_dirinfo.o tif_dirread.o tif_dirwrite.o tif_dumpmode.o tif_error.o tif_extension.o tif_fax3.o tif_fax3sm.o tif_flush.o tif_getimage.o tif_jpeg.o tif_luv.o tif_lzw.o tif_next.o tif_ojpeg.o tif_open.o tif_packbits.o tif_pixarlog.o tif_predict.o tif_print.o tif_read.o tif_strip.o tif_swab.o tif_thunder.o tif_tile.o tif_unix.o tif_version.o tif_warning.o tif_write.o tif_zip.o libtiff-dllversion.o libtiff-dll-res.o EXPORTS

        DllGetVersion @ 1 ;

libtiff.la
with text:
# libtiff.la - a libtool library file
# Generated by ltmain.sh - GNU libtool 1.5.14(1.1220.2.195 2005/02/12 12:12:33)
#
# Please DO NOT delete this file!
# It is necessary for linking the library.

# The name that we can dlopen(3).
dlname='libtiff3.dll'

# Names of this library.
library_names='libtiff.dll.a'

# The name of the static archive.
old_library='libtiff.dll.a'

# Libraries that this one depends upon.
dependency_libs=''

# Version information for libtiff.
current=11
age=8
revision=2

# Is this an already installed library?
installed=no

# Should we warn about portability when linking against -modules?

shouldnotlink=no

# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''

# Directory that this library needs to be installed in:

libdir='c:/progra~1/Tiff/lib'

and libtiff.dll.a which is of type:
libtiff.dll.a; current ar archive

If I make a strings on it, I get this informations:

!<arch>
/ 1155251999 0 0 0 96 `
l_libtiff3_dll_iname
__head_libtiff3_dll
_DllGetVersion
__imp__DllGetVersion

d000002.o/      1155251999  0     0     644     260       `

.idata$4
.idata$5
.idata$7
libtiff3.dll
.idata$4
.idata$5
.idata$7
_libtiff3_dll_iname

d000000.o/      1155251999  0     0     644     332       `

.idata$2
.idata$5
.idata$4
.idata$2
.idata$5
.idata$4
__head_libtiff3_dll
_libtiff3_dll_iname

d000001.o/      1155251999  0     0     644     500       `

.text
.idata$7
.idata$5
.idata$4
.idata$6
DllGetVersion
.text
.idata$7
.idata$5
.idata$4
.idata$6
_DllGetVersion
__imp__DllGetVersion
__head_libtiff3_dll

What's wrong? I added all needed libs (intl, iconv etc) and tools (o2dll, a2dll, rctool...) but there I don't have any idea.

Thank you for your help