[Insight-users] Simple (stupid) question re I/O
Neal R. Harvey
harve at lanl.gov
Thu Dec 18 13:37:20 EST 2008
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.
More information about the Insight-users
mailing list