[Insight-developers] missing itkSmartPointerForwardReference.txx

Will Schroeder will.schroeder@kitware.com
Sat, 13 Jan 2001 07:39:49 -0500


Hi Lydia-

I added itkSmartPointerForwardReference to take care of situations where you
have cyclic dependencies/includes (like DataObject and ProcessObject). 
Basically
the forward reference version is almost the same as the SmartPointer class, 
except
all the method implementations are "hidden" in the .txx file, this breaks 
the cyclic include dependency.

Anyway, itkDataObject.cxx includes itkSmartPointerForwardReference.txx (yes 
.txx)
and itkSmartPointerForwardReference.h does not include it. This is by 
design. The .txx
file must be included in a .cxx or .txx file as the last include.

I'm not sure why you are having build problems, I'm building on three PC's 
with MSVC.
It's possible that you are out-of-date with the source (or maybe CMake) and 
you have a dependency problem.

Will



At 09:57 PM 1/12/2001 -0800, Lydia Ng wrote:
>Hi,
>
>I am getting some "unresolved external symbol" errors when I
>try to build tests on VC++ (error message below).
>
>It complains about not finding symbols related to
>SmartPointerForwardReference.
>This is because itkSmartPointerForwardReference.txx was not included
>anywhere.
>
>itkSmartPointerForwardReference.h does not have the usual include
>.txx statement down the bottom. Maybe this was done for a reason.
>Can someone have a look into this?
>
>Cheers,
>Lydia
>
>-------------------Configuration: itkBasicArchitectureTest - Win32
>Release--------------------
>Linking...
>    Creating library Release/itkBasicArchitectureTest.lib and object
>Release/itkBasicArchitectureTest.exp
>itkBasicArchitectureTest.obj : error LNK2001: unresolved external symbol
>"public: class itk::ProcessObject * __thiscall
>itk::SmartPointerForwardReference<class
>itk::ProcessObject>::operator->(void)const "
>(??C?$SmartPointerForwardReference@VProcessO
>bject@itk@@@itk@@QBEPAVProcessObject@1@XZ)
>itkBasicArchitectureTest.obj : error LNK2001: unresolved external symbol
>"public: __thiscall itk::SmartPointerForwardReference<class
>itk::ProcessObject>::operator class itk::ProcessObject *(void)const "
>(??B?$SmartPointerForwardReference@VProcessObj
>ect@itk@@@itk@@QBEPAVProcessObject@1@XZ)
>Release/itkBasicArchitectureTest.exe : fatal error LNK1120: 2 unresolved
>externals
>Error executing link.exe.
>
>itkBasicArchitectureTest.exe - 3 error(s), 0 warning(s)
>
>
>
>_______________________________________________
>Insight-developers mailing list
>Insight-developers@public.kitware.com
>http://public.kitware.com/mailman/listinfo/insight-developers