[Insight-users] Problems with Watershed class

Samuel Rodríguez Bescos srodrigu at gbt . tfo . upm . es
Fri, 12 Jul 2002 17:52:27 +0200


Thanks a lot!!!

Samuel
----- Original Message -----
From: "Joshua Cates" <cates@sci.utah.edu>
To: "Samuel Rodríguez Bescos" <srodrigu@gbt.tfo.upm.es>
Cc: "Nils Hanssen" <hanssen@caesar.de>; <insight-users@public.kitware.com>
Sent: Friday, July 12, 2002 5:47 PM
Subject: Re: [Insight-users] Problems with Watershed class


> Hi,
>
> This problem is now fixed in the CVS repository.
>
>
> Josh.
>
> ______________________________
>  Josh Cates
>  School of Computer Science
>  University of Utah
>  Email: cates@sci.utah.edu
>  Phone: (801) 587-7697
>  URL:   www.cs.utk.edu/~cates
>
>
> On Tue, 2 Jul 2002, Samuel Rodríguez Bescos wrote:
>
> > Thanks Nils for your help.
> >
> > It runs OK now with warning instead errors.
> >
> > Thank again,
> >
> > Samuel
> >
> >
> >   ----- Original Message -----
> >   From: Nils Hanssen
> >   To: 'Samuel Rodríguez Bescos' ; insight-users@public.kitware.com
> >   Sent: Tuesday, July 02, 2002 3:16 PM
> >   Subject: RE: [Insight-users] Problems with Watershed class
> >
> >
> >   Hi Samuel,
> >
> >   I have exactly the same double symbols when linking my project with
the WatershedImageFilter.
> >   It's not the clean way, but until the problem is discovered, you can
turn these errors into warnings by including the "/FORCE:MULTIPLE" in the
linking options of MSVC.
> >
> >   Regards,
> >   Nils
> >     -----Original Message-----
> >     From: insight-users-admin@public.kitware.com
[mailto:insight-users-admin@public.kitware.com]On Behalf Of Samuel Rodríguez
Bescos
> >     Sent: Tuesday, July 02, 2002 2:04 PM
> >     To: insight-users@public.kitware.com
> >     Subject: [Insight-users] Problems with Watershed class
> >
> >
> >     Hello everybody.
> >
> >     I'm developing an example based in GaussianFilter example in order
to segmentate a PNG Image with the watershed algorithm. In the Base class I
have defined a member of the WatershedImageFilter class and the estructure
is the same of the Gaussian Filter example's.
> >
> >     I have a linking problem the error lines are this:
> >
> >     ==================
> >
> >     -------------------Configuration: Segmentation - Win32
Debug--------------------
> >     Linking...
> >     liSegmentationConsole.obj : error LNK2005: "public: bool __thiscall
itk::watershed::OneWayEquivalencyTable::Add(unsigned long,unsigned long)"
(?Add@OneWayEquivalencyTable@watershed@itk@@QAE_NKK@Z) already defined in
Segmentation.obj
> >     liSegmentationConsole.obj : error LNK2005: "public: void __thiscall
itk::watershed::OneWayEquivalencyTable::Flatten(void)"
(?Flatten@OneWayEquivalencyTable@watershed@itk@@QAEXXZ) already defined in
Segmentation.obj
> >     liSegmentationConsole.obj : error LNK2005: "public: unsigned long
__thiscall itk::watershed::OneWayEquivalencyTable::RecursiveLookup(unsigned
int)const " (?RecursiveLookup@OneWayEquivalencyTable@watershed@itk@@QBEKI@Z)
already defined in Segmentatio
> >     n.obj
> >     liSegmentationConsole.obj : error LNK2005: "protected: virtual void
__thiscall
itk::watershed::OneWayEquivalencyTable::UpdateOutputInformation(void)"
(?UpdateOutputInformation@OneWayEquivalencyTable@watershed@itk@@MAEXXZ)
already defined in Segmenta
> >     tion.obj
> >     liSegmentationConsole.obj : error LNK2005: "protected: virtual void
__thiscall itk::watershed::OneWayEquivalencyTable::PrintSelf(class
std::basic_ostream<char,struct std::char_traits<char> > &,class
itk::Indent)const " (?PrintSelf@OneWayEquivalencyT
> >
able@watershed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@VInd
ent@3@@Z) already defined in Segmentation.obj
> >     liSegmentationConsole.obj : error LNK2005: "public: bool __thiscall
itk::watershed::EquivalencyTable::Add(unsigned long,unsigned long)"
(?Add@EquivalencyTable@watershed@itk@@QAE_NKK@Z) already defined in
Segmentation.obj
> >     liSegmentationConsole.obj : error LNK2005: "public: void __thiscall
itk::watershed::EquivalencyTable::Flatten(void)"
(?Flatten@EquivalencyTable@watershed@itk@@QAEXXZ) already defined in
Segmentation.obj
> >     liSegmentationConsole.obj : error LNK2005: "public: unsigned long
__thiscall itk::watershed::EquivalencyTable::RecursiveLookup(unsigned
int)const " (?RecursiveLookup@EquivalencyTable@watershed@itk@@QBEKI@Z)
already defined in Segmentation.obj
> >     liSegmentationConsole.obj : error LNK2005: "protected: virtual void
__thiscall itk::watershed::EquivalencyTable::UpdateOutputInformation(void)"
(?UpdateOutputInformation@EquivalencyTable@watershed@itk@@MAEXXZ) already
defined in Segmentation.obj
> >     liSegmentationConsole.obj : error LNK2005: "protected: virtual void
__thiscall itk::watershed::EquivalencyTable::PrintSelf(class
std::basic_ostream<char,struct std::char_traits<char> > &,class
itk::Indent)const " (?PrintSelf@EquivalencyTable@watersh
> >
ed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@VIndent@3@@Z)
already defined in Segmentation.obj
> >     liSegmentationConsole.obj : error LNK2005: "public: virtual void
__thiscall itk::WatershedMiniPipelineProgressCommand::Execute(class
itk::Object *,class itk::EventObject const &)"
(?Execute@WatershedMiniPipelineProgressCommand@itk@@UAEXPAVObject@2@A
> >     BVEventObject@2@@Z) already defined in Segmentation.obj
> >     liSegmentationConsole.obj : error LNK2005: "public: virtual void
__thiscall itk::WatershedMiniPipelineProgressCommand::Execute(class
itk::Object const *,class itk::EventObject const &)"
(?Execute@WatershedMiniPipelineProgressCommand@itk@@UAEXPBVObje
> >     ct@2@ABVEventObject@2@@Z) already defined in Segmentation.obj
> >     liSegmentationConsoleBase.obj : error LNK2005: "public: bool
__thiscall itk::watershed::OneWayEquivalencyTable::Add(unsigned
long,unsigned long)" (?Add@OneWayEquivalencyTable@watershed@itk@@QAE_NKK@Z)
already defined in Segmentation.obj
> >     liSegmentationConsoleBase.obj : error LNK2005: "public: void
__thiscall itk::watershed::OneWayEquivalencyTable::Flatten(void)"
(?Flatten@OneWayEquivalencyTable@watershed@itk@@QAEXXZ) already defined in
Segmentation.obj
> >     liSegmentationConsoleBase.obj : error LNK2005: "public: unsigned
long __thiscall
itk::watershed::OneWayEquivalencyTable::RecursiveLookup(unsigned int)const "
(?RecursiveLookup@OneWayEquivalencyTable@watershed@itk@@QBEKI@Z) already
defined in Segment
> >     ation.obj
> >     liSegmentationConsoleBase.obj : error LNK2005: "protected: virtual
void __thiscall
itk::watershed::OneWayEquivalencyTable::UpdateOutputInformation(void)"
(?UpdateOutputInformation@OneWayEquivalencyTable@watershed@itk@@MAEXXZ)
already defined in Segm
> >     entation.obj
> >     liSegmentationConsoleBase.obj : error LNK2005: "protected: virtual
void __thiscall itk::watershed::OneWayEquivalencyTable::PrintSelf(class
std::basic_ostream<char,struct std::char_traits<char> > &,class
itk::Indent)const " (?PrintSelf@OneWayEquivale
> >
ncyTable@watershed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@
VIndent@3@@Z) already defined in Segmentation.obj
> >     liSegmentationConsoleBase.obj : error LNK2005: "public: bool
__thiscall itk::watershed::EquivalencyTable::Add(unsigned long,unsigned
long)" (?Add@EquivalencyTable@watershed@itk@@QAE_NKK@Z) already defined in
Segmentation.obj
> >     liSegmentationConsoleBase.obj : error LNK2005: "public: void
__thiscall itk::watershed::EquivalencyTable::Flatten(void)"
(?Flatten@EquivalencyTable@watershed@itk@@QAEXXZ) already defined in
Segmentation.obj
> >     liSegmentationConsoleBase.obj : error LNK2005: "public: unsigned
long __thiscall itk::watershed::EquivalencyTable::RecursiveLookup(unsigned
int)const " (?RecursiveLookup@EquivalencyTable@watershed@itk@@QBEKI@Z)
already defined in Segmentation.obj
> >     liSegmentationConsoleBase.obj : error LNK2005: "protected: virtual
void __thiscall
itk::watershed::EquivalencyTable::UpdateOutputInformation(void)"
(?UpdateOutputInformation@EquivalencyTable@watershed@itk@@MAEXXZ) already
defined in Segmentation.obj
> >     liSegmentationConsoleBase.obj : error LNK2005: "protected: virtual
void __thiscall itk::watershed::EquivalencyTable::PrintSelf(class
std::basic_ostream<char,struct std::char_traits<char> > &,class
itk::Indent)const " (?PrintSelf@EquivalencyTable@wat
> >
ershed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@VIndent@3@@Z
) already defined in Segmentation.obj
> >     liSegmentationConsoleBase.obj : error LNK2005: "public: virtual void
__thiscall itk::WatershedMiniPipelineProgressCommand::Execute(class
itk::Object *,class itk::EventObject const &)"
(?Execute@WatershedMiniPipelineProgressCommand@itk@@UAEXPAVObject
> >     @2@ABVEventObject@2@@Z) already defined in Segmentation.obj
> >     liSegmentationConsoleBase.obj : error LNK2005: "public: virtual void
__thiscall itk::WatershedMiniPipelineProgressCommand::Execute(class
itk::Object const *,class itk::EventObject const &)"
(?Execute@WatershedMiniPipelineProgressCommand@itk@@UAEXPBV
> >     Object@2@ABVEventObject@2@@Z) already defined in Segmentation.obj
> >     liSegmentationConsoleGUI.obj : error LNK2005: "public: bool
__thiscall itk::watershed::OneWayEquivalencyTable::Add(unsigned
long,unsigned long)" (?Add@OneWayEquivalencyTable@watershed@itk@@QAE_NKK@Z)
already defined in Segmentation.obj
> >     liSegmentationConsoleGUI.obj : error LNK2005: "public: void
__thiscall itk::watershed::OneWayEquivalencyTable::Flatten(void)"
(?Flatten@OneWayEquivalencyTable@watershed@itk@@QAEXXZ) already defined in
Segmentation.obj
> >     liSegmentationConsoleGUI.obj : error LNK2005: "public: unsigned long
__thiscall itk::watershed::OneWayEquivalencyTable::RecursiveLookup(unsigned
int)const " (?RecursiveLookup@OneWayEquivalencyTable@watershed@itk@@QBEKI@Z)
already defined in Segmenta
> >     tion.obj
> >     liSegmentationConsoleGUI.obj : error LNK2005: "protected: virtual
void __thiscall
itk::watershed::OneWayEquivalencyTable::UpdateOutputInformation(void)"
(?UpdateOutputInformation@OneWayEquivalencyTable@watershed@itk@@MAEXXZ)
already defined in Segme
> >     ntation.obj
> >     liSegmentationConsoleGUI.obj : error LNK2005: "protected: virtual
void __thiscall itk::watershed::OneWayEquivalencyTable::PrintSelf(class
std::basic_ostream<char,struct std::char_traits<char> > &,class
itk::Indent)const " (?PrintSelf@OneWayEquivalen
> >
cyTable@watershed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@V
Indent@3@@Z) already defined in Segmentation.obj
> >     liSegmentationConsoleGUI.obj : error LNK2005: "public: bool
__thiscall itk::watershed::EquivalencyTable::Add(unsigned long,unsigned
long)" (?Add@EquivalencyTable@watershed@itk@@QAE_NKK@Z) already defined in
Segmentation.obj
> >     liSegmentationConsoleGUI.obj : error LNK2005: "public: void
__thiscall itk::watershed::EquivalencyTable::Flatten(void)"
(?Flatten@EquivalencyTable@watershed@itk@@QAEXXZ) already defined in
Segmentation.obj
> >     liSegmentationConsoleGUI.obj : error LNK2005: "public: unsigned long
__thiscall itk::watershed::EquivalencyTable::RecursiveLookup(unsigned
int)const " (?RecursiveLookup@EquivalencyTable@watershed@itk@@QBEKI@Z)
already defined in Segmentation.obj
> >     liSegmentationConsoleGUI.obj : error LNK2005: "protected: virtual
void __thiscall
itk::watershed::EquivalencyTable::UpdateOutputInformation(void)"
(?UpdateOutputInformation@EquivalencyTable@watershed@itk@@MAEXXZ) already
defined in Segmentation.obj
> >     liSegmentationConsoleGUI.obj : error LNK2005: "protected: virtual
void __thiscall itk::watershed::EquivalencyTable::PrintSelf(class
std::basic_ostream<char,struct std::char_traits<char> > &,class
itk::Indent)const " (?PrintSelf@EquivalencyTable@wate
> >
rshed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@VIndent@3@@Z)
already defined in Segmentation.obj
> >     liSegmentationConsoleGUI.obj : error LNK2005: "public: virtual void
__thiscall itk::WatershedMiniPipelineProgressCommand::Execute(class
itk::Object *,class itk::EventObject const &)"
(?Execute@WatershedMiniPipelineProgressCommand@itk@@UAEXPAVObject@
> >     2@ABVEventObject@2@@Z) already defined in Segmentation.obj
> >     liSegmentationConsoleGUI.obj : error LNK2005: "public: virtual void
__thiscall itk::WatershedMiniPipelineProgressCommand::Execute(class
itk::Object const *,class itk::EventObject const &)"
(?Execute@WatershedMiniPipelineProgressCommand@itk@@UAEXPBVO
> >     bject@2@ABVEventObject@2@@Z) already defined in Segmentation.obj
> >     LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of
other libs; use /NODEFAULTLIB:library
> >     Debug/Segmentation.exe : fatal error LNK1169: one or more multiply
defined symbols found
> >     Error executing link.exe.
> >
> >     Segmentation.exe - 37 error(s), 1 warning(s)
> >
> >     ===================END=================================
> >
> >       I'm using the Beta Release and MSVC 6.0.
> >
> >     Could anybody Know what is hapening and help me?
> >
> >     Thanks in advance.
> >
> >     Samuel
> >
> >
> >