[Insight-users] Connecting ITK-VTK : link errors "basic_ostream<..>"

Luis Ibanez luis.ibanez at kitware.com
Thu, 22 Jan 2004 12:53:07 -0500


Hi Julien,

There are two common cases in which these
link error messages are produced:


A) When you mix compilation modes.
    That is, mixing some libraries
    compiled for Debug, with libraries
    compiled for Release.  Please make
    sure that you are using a consistent
    compilation mode acrros your entire
    application.


B) A more esoteric case in which VC++
    gets confused depending on the order
    in which you place the #include for
    <fstream> in your .cxx files.

    Our equally esoteric solution to this
    case is to make sure that in your .cxx
    file, the #include for fstream appears
    before any  #include for ITK classes.



In both cases, this is unrelated to the
fact of connecting ITK with VTK.


Regards,


   Luis


----------------------
Julien Hamaide wrote:

> Hi,
> 
>  
> 
> I’m new to ITK, and I try to make it work with VTK. I’ve finally figured 
> out how to connect the two pipelines, but when Iink, I get this problem. 
> I’ve already try too much configuration. Now, I’m using Shared Library 
> configuration for both VTK and ITK.
> 
>  
> 
> Does anybody as an idea?
> 
>  
> 
> Thanks
> 
>  
> 
> msvcprtd.lib(MSVCP70D.dll) : error LNK2005: "public: class 
> std::basic_ostream<char,struct std::char_traits<char> > & __thiscall 
> std::basic_ostream<char,struct std::char_traits<char> 
>  >::operator<<(class std::basic_ostream<char,struct 
> std::char_traits<char> > & (__cdecl*)(class 
> std::basic_ostream<char,struct std::char_traits<char> > &))" 
> (??6?$basic_ostream at DU?$char_traits at D at std at  at  at std at  at QAEAAV01 at P6AAAV01 at AAV01 at  at Z at Z) 
> already defined in VolToMesh.obj
> 
>  
> 
> msvcprtd.lib(MSVCP70D.dll) : error LNK2005: "public: class 
> std::basic_ostream<char,struct std::char_traits<char> > & __thiscall 
> std::basic_ostream<char,struct std::char_traits<char> 
>  >::operator<<(unsigned long)" 
> (??6?$basic_ostream at DU?$char_traits at D at std at  at  at std at  at QAEAAV01 at K at Z) already 
> defined in VolToMesh.obj
> 
>  
> 
> msvcprtd.lib(MSVCP70D.dll) : error LNK2005: "class 
> std::basic_ostream<char,struct std::char_traits<char> > & __cdecl 
> std::operator<<(class std::basic_ostream<char,struct 
> std::char_traits<char> > &,char const *)" 
> (??6std at  at YAAAV?$basic_ostream at DU?$char_traits at D at std at  at  at 0 at AAV10 at PBD at Z) 
> already defined in VolToMesh.obj
> 
>  
> 
> msvcprtd.lib(MSVCP70D.dll) : error LNK2005: "class 
> std::basic_ostream<char,struct std::char_traits<char> > & __cdecl 
> std::endl(class std::basic_ostream<char,struct std::char_traits<char> > 
> &)" (?endl at std at  at YAAAV?$basic_ostream at DU?$char_traits at D at std at  at  at 1 at AAV21 at  at Z) 
> already defined in VolToMesh.obj
> 
> Debug/VolToMesh.exe : fatal error LNK1169: one or more multiply defined 
> symbols found
> 
>  
> 
> Julien Hamaide
> 
>  
> 
> Tcts Lab - Multitel Asbl.
> 
> Faculte Polytechnique de Mons
> 
> Parc Initialis - Avenue Nicolas Copernic,1
> 
> 7000 - Mons
> 
> Belgium
> 
> http://tcts.fpms.ac.be
> 
>  
> 
> tel +32 65 37 47 43
> 
> email : julien.hamaide at tcts.fpms.ac.be
> 
>  
>