[Insight-users] I'm New... linking issue under MS Visual Studio 8. Am using CMake

phorwich at bidmc.harvard.edu phorwich at bidmc.harvard.edu
Sat Jun 6 18:38:27 EDT 2009


Hi All,

 

This is another post about trouble linking.  My current state of affairs
is:

 

+        Downloaded and built ITK with CMake.

+        Built ITK_BIN successfully with MS Visual Studio 2008 under Win
XP

+        Made a new project 'Hello World' and copy/pasted the code from
the examples directory

+        HelloWorld built and executed successfully

 

+        Did something similar with 'DicomSeriesReadImageWrite2' and
everything worked well. 

 

+        Made a new project 'ConnectedThresholdImageFilter'

+        copy/pasted code from the examples directory

+        modified CMakeList.txt so it looks like:

 

# This is the root ITK CMakeLists file.

CMAKE_MINIMUM_REQUIRED(VERSION 2.4)

IF(COMMAND CMAKE_POLICY)

  CMAKE_POLICY(SET CMP0003 NEW)

ENDIF(COMMAND CMAKE_POLICY)

 

 

# This project is designed to be built outside the Insight source tree.

PROJECT(ConnectedThresholdImageFilter)

 

# Find ITK.

FIND_PACKAGE(ITK REQUIRED)

INCLUDE(${ITK_USE_FILE})

 

ADD_EXECUTABLE(ConnectedThresholdImageFilter
ConnectedThresholdImageFilter.cxx )

 

TARGET_LINK_LIBRARIES(ConnectedThresholdImageFilter ITKCommon)

 

+        Run CMake

+        Build ConnectedThresholdImageFilter project

+        Code compiles, no errors

+        When it comes time to link, I get 17 errors that look like:

------ Build started: Project: ConnectedThresholdImageFilter,
Configuration: Debug Win32 ------

Compiling...

ConnectedThresholdImageFilter.cxx

Linking...

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "public: static class itk::SmartPointer<class itk::ImageIOBase>
__cdecl itk::ImageIOFactory::CreateImageIO(char const *,enum
itk::ImageIOFactory::FileModeType)"
(?CreateImageIO at ImageIOFactory@itk@@SA?AV?$SmartPointer at VImageIOBase@itk
@@@2 at PBDW4FileModeType@12@@Z) referenced in function
__catch$?GenerateOutputInformation@?$ImageFileReader at V?$Image at M$01 at itk@@
V?$DefaultConvertPixelTraits at M@2@@itk@@UAEXXZ$0

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "public: virtual __thiscall
itk::ImageIORegion::~ImageIORegion(void)" (??1ImageIORegion at itk@@UAE at XZ)
referenced in function "public: virtual void __thiscall
itk::ImageFileReader<class itk::Image<float,2>,class
itk::DefaultConvertPixelTraits<float>
>::EnlargeOutputRequestedRegion(class itk::DataObject *)"
(?EnlargeOutputRequestedRegion@?$ImageFileReader at V?$Image at M$01 at itk@@V?$D
efaultConvertPixelTraits at M@2@@itk@@UAEXPAVDataObject at 2@@Z)

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "public: __thiscall itk::ImageIORegion::ImageIORegion(unsigned
int)" (??0ImageIORegion at itk@@QAE at I@Z) referenced in function "public:
virtual void __thiscall itk::ImageFileReader<class
itk::Image<float,2>,class itk::DefaultConvertPixelTraits<float>
>::EnlargeOutputRequestedRegion(class itk::DataObject *)"
(?EnlargeOutputRequestedRegion@?$ImageFileReader at V?$Image at M$01 at itk@@V?$D
efaultConvertPixelTraits at M@2@@itk@@UAEXPAVDataObject at 2@@Z)

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "public: long __thiscall
itk::ImageIOBase::GetImageSizeInBytes(void)const "
(?GetImageSizeInBytes at ImageIOBase@itk@@QBEJXZ) referenced in function
__catch$?GenerateData@?$ImageFileReader at V?$Image at M$01 at itk@@V?$DefaultCon
vertPixelTraits at M@2@@itk@@MAEXXZ$0

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "public: __thiscall itk::ImageIORegion::ImageIORegion(class
itk::ImageIORegion const &)" (??0ImageIORegion at itk@@QAE at ABV01@@Z)
referenced in function
__catch$?GenerateData@?$ImageFileReader at V?$Image at M$01 at itk@@V?$DefaultCon
vertPixelTraits at M@2@@itk@@MAEXXZ$0

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "class std::basic_ostream<char,struct std::char_traits<char> > &
__cdecl itk::operator<<(class std::basic_ostream<char,struct
std::char_traits<char> > &,class itk::ImageIORegion const &)"
(??6itk@@YAAAV?$basic_ostream at DU?$char_traits at D@std@@@std@@AAV12 at ABVImag
eIORegion at 0@@Z) referenced in function
__catch$?GenerateData@?$ImageFileReader at V?$Image at M$01 at itk@@V?$DefaultCon
vertPixelTraits at M@2@@itk@@MAEXXZ$0

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "public: bool __thiscall itk::ImageIORegion::IsInside(class
itk::ImageIORegion const &)const "
(?IsInside at ImageIORegion@itk@@QBE_NABV12@@Z) referenced in function
"public: virtual void __thiscall itk::ImageFileWriter<class
itk::Image<unsigned char,2> >::Write(void)"
(?Write@?$ImageFileWriter at V?$Image at E$01 at itk@@@itk@@UAEXXZ)

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "public: void __thiscall itk::ImageIORegion::operator=(class
itk::ImageIORegion const &)" (??4ImageIORegion at itk@@QAEXABV01@@Z)
referenced in function "public: virtual void __thiscall
itk::ImageFileWriter<class itk::Image<unsigned char,2> >::Write(void)"
(?Write@?$ImageFileWriter at V?$Image at E$01 at itk@@@itk@@UAEXXZ)

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "public: __thiscall itk::ImageIORegion::ImageIORegion(void)"
(??0ImageIORegion at itk@@QAE at XZ) referenced in function "public: virtual
void __thiscall itk::ImageFileWriter<class itk::Image<unsigned char,2>
>::Write(void)"
(?Write@?$ImageFileWriter at V?$Image at E$01 at itk@@@itk@@UAEXXZ)

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "public: void __thiscall
itk::ImageIOBase::SetNumberOfDimensions(unsigned int)"
(?SetNumberOfDimensions at ImageIOBase@itk@@QAEXI at Z) referenced in function
"public: virtual void __thiscall itk::ImageFileWriter<class
itk::Image<unsigned char,2> >::Write(void)"
(?Write@?$ImageFileWriter at V?$Image at E$01 at itk@@@itk@@UAEXXZ)

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "public: void __thiscall itk::ImageIORegion::SetIndex(unsigned
long,long)" (?SetIndex at ImageIORegion@itk@@QAEXKJ at Z) referenced in
function "public: static void __cdecl
itk::ImageIORegionAdaptor<2>::Convert(class itk::ImageRegion<2> const
&,class itk::ImageIORegion &,class itk::Index<2> const &)"
(?Convert@?$ImageIORegionAdaptor@$01 at itk@@SAXABV?$ImageRegion@$01 at 2@AAVI
mageIORegion at 2@ABV?$Index@$01 at 2@@Z)

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "public: void __thiscall itk::ImageIORegion::SetSize(unsigned
long,unsigned long)" (?SetSize at ImageIORegion@itk@@QAEXKK at Z) referenced
in function "public: static void __cdecl
itk::ImageIORegionAdaptor<2>::Convert(class itk::ImageRegion<2> const
&,class itk::ImageIORegion &,class itk::Index<2> const &)"
(?Convert@?$ImageIORegionAdaptor@$01 at itk@@SAXABV?$ImageRegion@$01 at 2@AAVI
mageIORegion at 2@ABV?$Index@$01 at 2@@Z)

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "public: unsigned int __thiscall
itk::ImageIORegion::GetImageDimension(void)const "
(?GetImageDimension at ImageIORegion@itk@@QBEIXZ) referenced in function
"public: static void __cdecl itk::ImageIORegionAdaptor<2>::Convert(class
itk::ImageRegion<2> const &,class itk::ImageIORegion &,class
itk::Index<2> const &)"
(?Convert@?$ImageIORegionAdaptor@$01 at itk@@SAXABV?$ImageRegion@$01 at 2@AAVI
mageIORegion at 2@ABV?$Index@$01 at 2@@Z)

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "public: long __thiscall itk::ImageIORegion::GetIndex(unsigned
long)const " (?GetIndex at ImageIORegion@itk@@QBEJK at Z) referenced in
function "public: static void __cdecl
itk::ImageIORegionAdaptor<2>::Convert(class itk::ImageIORegion const
&,class itk::ImageRegion<2> &,class itk::Index<2> const &)"
(?Convert@?$ImageIORegionAdaptor@$01 at itk@@SAXABVImageIORegion at 2@AAV?$Ima
geRegion@$01 at 2@ABV?$Index@$01 at 2@@Z)

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "public: unsigned long __thiscall
itk::ImageIORegion::GetSize(unsigned long)const "
(?GetSize at ImageIORegion@itk@@QBEKK at Z) referenced in function "public:
static void __cdecl itk::ImageIORegionAdaptor<2>::Convert(class
itk::ImageIORegion const &,class itk::ImageRegion<2> &,class
itk::Index<2> const &)"
(?Convert@?$ImageIORegionAdaptor@$01 at itk@@SAXABVImageIORegion at 2@AAV?$Ima
geRegion@$01 at 2@ABV?$Index@$01 at 2@@Z)

ConnectedThresholdImageFilter.obj : error LNK2019: unresolved external
symbol "public: class std::basic_string<char,struct
std::char_traits<char>,class std::allocator<char> > __thiscall
itk::ImageIOBase::GetComponentTypeAsString(enum
itk::ImageIOBase::IOComponentType)const "
(?GetComponentTypeAsString at ImageIOBase@itk@@QBE?AV?$basic_string at DU?$cha
r_traits at D@std@@V?$allocator at D@2@@std@@W4IOComponentType at 12@@Z)
referenced in function "protected: void __thiscall
itk::ImageFileReader<class itk::Image<float,2>,class
itk::DefaultConvertPixelTraits<float> >::DoConvertBuffer(void *,unsigned
long)"
(?DoConvertBuffer@?$ImageFileReader at V?$Image at M$01 at itk@@V?$DefaultConvert
PixelTraits at M@2@@itk@@IAEXPAXK at Z)

C:\itkproj\connThreshImgFilter\connThreshImgFilterBin\Debug\ConnectedThr
esholdImageFilter.exe : fatal error LNK1120: 16 unresolved externals

Build log was saved at
"file://c:\itkproj\connThreshImgFilter\connThreshImgFilterBin\ConnectedT
hresholdImageFilter.dir\Debug\BuildLog.htm"

ConnectedThresholdImageFilter - 17 error(s), 0 warning(s)

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped
===========

 

Alas....  After a couple of hours of trying various methods of pointing
the linker in the right direction, I seem to have hit a wall.  Is it
possible this example code uses classes that are not part of the
distribution code? I can't even be sure which line of code is generating
the tag that fails to link.  My main interest in ITK is image
segmentation, so I'm hoping someone can help me get over this early
hurdle.

 

Many thanks in advance-

 

Perry 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20090606/cb5d0d3c/attachment-0001.htm>


More information about the Insight-users mailing list