[Insight-users] Simple (stupid) question re I/O

Neal R. Harvey harve at lanl.gov
Thu Dec 18 13:43:21 EST 2008


Brilliant! Thanks.

Is that information somewhere in the users' guide and I just missed it?
> Bill Lorensen wrote:
>> Try this:
>> TARGET_LINK_LIBRARIES(HelloWorld ITKIO ITKCommon)
>>
>> On Thu, Dec 18, 2008 at 1:37 PM, Neal R. Harvey <harve at lanl.gov> wrote:
>>  
>>> Bill Lorensen wrote:
>>>    
>>>> Can you post your CMakeLists.txt file?
>>>>
>>>>       
>>>   It is very basic - as per the "Hello World" initial example in the 
>>> user's
>>> guide:
>>>
>>> PROJECT(HelloWorld)
>>>
>>> # Find ITK.
>>> FIND_PACKAGE(ITK REQUIRED)
>>> IF(ITK_FOUND)
>>>  INCLUDE(${ITK_USE_FILE})
>>> ENDIF(ITK_FOUND)
>>>
>>> ADD_EXECUTABLE(HelloWorld HelloWorld.cxx )
>>>
>>> TARGET_LINK_LIBRARIES(HelloWorld ITKCommon)
>>>
>>>
>>>    
>>>> On Thu, Dec 18, 2008 at 12:58 PM, Neal R. Harvey <harve at lanl.gov> 
>>>> wrote:
>>>>
>>>>      
>>>>> I have recently become interested in ITK as it seems like it can 
>>>>> offer a
>>>>> lot
>>>>> of what I
>>>>> want/need for a whole bunch of projects.
>>>>> Anyhoo, I downloaded the code and built it successfully, with no 
>>>>> errors
>>>>> or
>>>>> problems,
>>>>> according to the instructions in the user guide.
>>>>> I was all excited, and was working my way through the user guide, 
>>>>> trying
>>>>> to
>>>>> become
>>>>> sufficiently familiar with using the tool kit.
>>>>> I thought I would try to read/write a TIFF file (as most of my 
>>>>> images are
>>>>> TIFF), and produced
>>>>> the following (small and simple code), taking baby steps, in which I
>>>>> don't
>>>>> even get to the actual
>>>>> reading or writing of the TIFF file, based on the
>>>>> Examples/IO/ImageReadExportVTK.cxx provided in the ITK code-base:
>>>>> (note that if I use the actual ImageReadExportVTK.cxx code 
>>>>> provided, I
>>>>> get
>>>>> the same errors)
>>>>>
>>>>> #include "itkImage.h"
>>>>> #include <iostream>
>>>>> #include "itkImageFileReader.h"
>>>>> #include "itkImageFileWriter.h"
>>>>> #include "itkTIFFImageIO.h"
>>>>>
>>>>> int main( int argc, char ** argv )
>>>>> {
>>>>>  if( argc < 3 )
>>>>>  {
>>>>>    std::cerr << "Usage: " << std::endl;
>>>>>    std::cerr << argv[0] << " inputImageFile  outputImageFile " <<
>>>>> std::endl;
>>>>>    return EXIT_FAILURE;
>>>>>  }
>>>>>
>>>>>  typedef unsigned short      PixelType;
>>>>>  const   unsigned int        Dimension = 2;
>>>>>  typedef itk::Image< PixelType, Dimension >    ImageType;
>>>>>
>>>>>  typedef itk::ImageFileReader< ImageType >  ReaderType;
>>>>>  typedef itk::ImageFileWriter< ImageType >  WriterType;
>>>>>  typedef itk::TIFFImageIO                   ImageIOType;
>>>>>
>>>>>  ReaderType::Pointer reader = ReaderType::New();
>>>>>  WriterType::Pointer writer = WriterType::New();
>>>>>  ImageIOType::Pointer tiffIO = ImageIOType::New();
>>>>>
>>>>>  return EXIT_SUCCESS;
>>>>> }
>>>>>
>>>>> When I compile the code I get the following:
>>>>>
>>>>> dumbass$ make
>>>>> Scanning dependencies of target HelloWorld
>>>>> [100%] Building CXX object CMakeFiles/HelloWorld.dir/HelloWorld.o
>>>>> Linking CXX executable HelloWorld
>>>>> CMakeFiles/HelloWorld.dir/HelloWorld.o: In function
>>>>> `itk::ImageIORegion::~ImageIORegion()':
>>>>>
>>>>> HelloWorld.cxx:(.text._ZN3itk13ImageIORegionD1Ev[itk::ImageIORegion::~ImageIORegion()]+0x7): 
>>>>>
>>>>> undefined reference to `vtable for itk::ImageIORegion'
>>>>> CMakeFiles/HelloWorld.dir/HelloWorld.o: In function
>>>>> `itk::ImageIORegion::ImageIORegion(unsigned int)':
>>>>>
>>>>> HelloWorld.cxx:(.text._ZN3itk13ImageIORegionC1Ej[itk::ImageIORegion::ImageIORegion(unsigned 
>>>>>
>>>>> int)]+0x13): undefined reference to `vtable for itk::ImageIORegion'
>>>>> CMakeFiles/HelloWorld.dir/HelloWorld.o: In function
>>>>> `itk::ImageIORegion::ImageIORegion(itk::ImageIORegion const&)':
>>>>>
>>>>> HelloWorld.cxx:(.text._ZN3itk13ImageIORegionC1ERKS0_[itk::ImageIORegion::ImageIORegion(itk::ImageIORegion 
>>>>>
>>>>> const&)]+0x13): undefined reference to `vtable for 
>>>>> itk::ImageIORegion'
>>>>> CMakeFiles/HelloWorld.dir/HelloWorld.o: In function
>>>>> `itk::ImageFileReader<itk::Image<unsigned short, 2u>,
>>>>> itk::DefaultConvertPixelTraits<unsigned short> 
>>>>> >::DoConvertBuffer(void*,
>>>>> unsigned long)':
>>>>>
>>>>> HelloWorld.cxx:(.text._ZN3itk15ImageFileReaderINS_5ImageItLj2EEENS_25DefaultConvertPixelTraitsItEEE15DoConvertBufferEPvm[itk::ImageFileReader<itk::Image<unsigned 
>>>>>
>>>>> short, 2u>, itk::DefaultConvertPixelTraits<unsigned short>
>>>>>
>>>>>        
>>>>>> ::DoConvertBuffer(void*, unsigned long)]+0xac6): undefined 
>>>>>> reference to
>>>>>>
>>>>>>           
>>>>> `itk::ImageIOBase::GetComponentTypeAsString(itk::ImageIOBase::IOComponentType) 
>>>>>
>>>>> const'
>>>>> CMakeFiles/HelloWorld.dir/HelloWorld.o: In function
>>>>> `itk::ImageFileReader<itk::Image<unsigned short, 2u>,
>>>>> itk::DefaultConvertPixelTraits<unsigned short> >::GenerateData()':
>>>>>
>>>>> HelloWorld.cxx:(.text._ZN3itk15ImageFileReaderINS_5ImageItLj2EEENS_25DefaultConvertPixelTraitsItEEE12GenerateDataEv[itk::ImageFileReader<itk::Image<unsigned 
>>>>>
>>>>> short, 2u>, itk::DefaultConvertPixelTraits<unsigned short>
>>>>>
>>>>>        
>>>>>> ::GenerateData()]+0x44b): undefined reference to
>>>>>>
>>>>>>           
>>>>> `itk::operator<<(std::basic_ostream<char, std::char_traits<char> >&,
>>>>> itk::ImageIORegion const&)'
>>>>>
>>>>> HelloWorld.cxx:(.text._ZN3itk15ImageFileReaderINS_5ImageItLj2EEENS_25DefaultConvertPixelTraitsItEEE12GenerateDataEv[itk::ImageFileReader<itk::Image<unsigned 
>>>>>
>>>>> short, 2u>, itk::DefaultConvertPixelTraits<unsigned short>
>>>>>
>>>>>        
>>>>>> ::GenerateData()]+0x992): undefined reference to
>>>>>>
>>>>>>           
>>>>> `itk::ImageIOBase::GetImageSizeInBytes() const'
>>>>> CMakeFiles/HelloWorld.dir/HelloWorld.o: In function
>>>>> `itk::ImageFileReader<itk::Image<unsigned short, 2u>,
>>>>> itk::DefaultConvertPixelTraits<unsigned short>
>>>>>
>>>>>        
>>>>>> ::GenerateOutputInformation()':
>>>>>>
>>>>>>           
>>>>> HelloWorld.cxx:(.text._ZN3itk15ImageFileReaderINS_5ImageItLj2EEENS_25DefaultConvertPixelTraitsItEEE25GenerateOutputInformationEv[itk::ImageFileReader<itk::Image<unsigned 
>>>>>
>>>>> short, 2u>, itk::DefaultConvertPixelTraits<unsigned short>
>>>>>
>>>>>        
>>>>>> ::GenerateOutputInformation()]+0x33b): undefined reference to
>>>>>>
>>>>>>           
>>>>> `itk::ImageIOFactory::CreateImageIO(char const*,
>>>>> itk::ImageIOFactory::FileModeType)'
>>>>>
>>>>> HelloWorld.cxx:(.text._ZN3itk15ImageFileReaderINS_5ImageItLj2EEENS_25DefaultConvertPixelTraitsItEEE25GenerateOutputInformationEv[itk::ImageFileReader<itk::Image<unsigned 
>>>>>
>>>>> short, 2u>, itk::DefaultConvertPixelTraits<unsigned short>
>>>>>
>>>>>        
>>>>>> ::GenerateOutputInformation()]+0x4d8): undefined reference to 
>>>>>> `typeinfo
>>>>>> for
>>>>>>
>>>>>>           
>>>>> itk::ImageIOBase'
>>>>> collect2: ld returned 1 exit status
>>>>> make[2]: *** [HelloWorld] Error 1
>>>>> make[1]: *** [CMakeFiles/HelloWorld.dir/all] Error 2
>>>>> make: *** [all] Error 2
>>>>>
>>>>> It's probably something pretty minor, but it is most frustrating not
>>>>> being
>>>>> able to figure out the problem. I have to admit to not being much
>>>>> of a C++ programmer, mainly dealing with C.
>>>>> Any helpful insights would be very much appreciated.
>>>>>
>>>>> Cheers
>>>>>
>>>>> -- 
>>>>> HARVE (Neal R. Harvey)           Email: harve at lanl.gov
>>>>> ISR-2                            Phone: 505 667 9077
>>>>> Los Alamos National Laboratory   Fax: 505 664 0362
>>>>> Los Alamos, NM 87545, USA        Mail Stop: D-436
>>>>> The generation of random numbers is too important to be left to 
>>>>> chance.
>>>>>
>>>>> _______________________________________________
>>>>> Insight-users mailing list
>>>>> Insight-users at itk.org
>>>>> http://www.itk.org/mailman/listinfo/insight-users
>>>>>
>>>>>
>>>>>         
>>> -- 
>>> HARVE (Neal R. Harvey)           Email: harve at lanl.gov
>>> ISR-2                            Phone: 505 667 9077
>>> Los Alamos National Laboratory   Fax: 505 664 0362
>>> Los Alamos, NM 87545, USA        Mail Stop: D-436
>>> The generation of random numbers is too important to be left to chance.
>>>
>>>
>>>     
>
>


-- 
HARVE (Neal R. Harvey)           Email: harve at lanl.gov
ISR-2                            Phone: 505 667 9077
Los Alamos National Laboratory   Fax: 505 664 0362
Los Alamos, NM 87545, USA        Mail Stop: D-436
The generation of random numbers is too important to be left to chance.



More information about the Insight-users mailing list