[Insight-users] _TIFFerrorHandlerExt already defined in vtktiff.lib

Dženan Zukić dzenanz at gmail.com
Tue Sep 13 04:40:49 EDT 2011


I thought those two files are auto-generated. They are not. Adding the
following to lines to itk_tiff_mangle.h solves the problem:

#define _TIFFerrorHandlerExt itk__TIFFerrorHandlerExt
#define _TIFFwarningHandlerExt itk__TIFFwarningHandlerExt

The other error (ITKgiftiio-4.0.lib) went away with today's pull.

2011/9/13 Dženan Zukić <dzenanz at gmail.com>

> Thanks for the hint Sean.
>
> itk_tiff_mangle.h contains definitions such as these:
> #define _TIFFerrorHandler itk__TIFFerrorHandler
> #define _TIFFwarningHandler itk__TIFFwarningHandler
> and VTK version does the same just with vtk_ prefix.
>
> However, neither files mentions the offending symbols,
> _TIFFerrorHandlerExt and _TIFFwarningHandlerExt.
>
> However, the command at the top of those files gives a hint that a
> generation of these _mangle.h files is somehow faulty:
> /*
> This header file mangles all symbols exported from the tiff library.
> It is included in all files while building the tiff library.  Due to
> namespace pollution, no tiff headers should be included in .h files in
> VTK.
>
> The following command was used to obtain the symbol list:
> *nm libvtktiff.a |grep " [TRD] "*
> */
>
> Since I know nothing about internals of TIFF library nor about the
> generation process of those files, I am pretty crippled when it comes to
> solving this issue. Any help will be appreciated.
>
> Regards,
> Dženan
>
> On Mon, Sep 12, 2011 at 19:30, Sean McBride <sean at rogue-research.com>wrote:
>
>> On Mon, 12 Sep 2011 16:47:35 +0200, Dženan Zukić said:
>>
>> >I just updated my ITK4 git repository (I had maybe a month old version
>> >previously). ITK itself compiles without issues, but my project gets some
>> >linking errors.
>> >
>> >For Debug there is one error:
>> >LINK : fatal error LNK1104: cannot open file
>> >'D:\SDK\ITK4build\lib\Debug\ITKgiftiio-4.0.lib'
>>
>> That looks like a different problem.
>>
>> >For Release these two errors appear:
>> >itktiff-4.0.lib(tif_error.obj) : error LNK2005: _TIFFerrorHandlerExt
>> already
>> >defined in vtktiff.lib(tif_error.obj)
>> >itktiff-4.0.lib(tif_warning.obj) : error LNK2005: _TIFFwarningHandlerExt
>> >already defined in vtktiff.lib(tif_warning.obj)
>>
>> If you check your VTK and ITK source trees for files with the name
>> 'mangle' you'll find:
>>
>> vtk_tiff_mangle.h
>> itk_tiff_mangle.h
>>
>> They use preprocessor magic to change the symbol names of libTIFF
>> functions to prevent the exact problem you are seeing.  I suspect something
>> is missing from one of both of those files.  If you find it, a patch would
>> be nice!
>>
>> Cheers,
>>
>> --
>> ____________________________________________________________
>> Sean McBride, B. Eng                 sean at rogue-research.com
>> Rogue Research                        www.rogue-research.com
>> Mac Software Developer              Montréal, Québec, Canada
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20110913/a1b710d0/attachment.htm>


More information about the Insight-users mailing list