[Insight-users] ITK windows compilation error

Matt McCormick matt.mccormick at kitware.com
Wed Jan 30 13:51:38 EST 2013


PS Gerrit review documentation:

  http://insightsoftwareconsortium.github.com/ITKBarCamp-doc/CommunitySoftwareProcess/PerformAGerritReview/index.html

On Wed, Jan 30, 2013 at 6:46 PM, Matt McCormick
<matt.mccormick at kitware.com> wrote:
> Hi Adrien,
>
> Please test and review this patch:
>
>   http://review.source.kitware.com/#/c/9534/
>
> Thanks,
> Matt
>
> On Wed, Jan 30, 2013 at 5:17 PM, Kaiser, Adrien <akaiser at email.unc.edu> wrote:
>> Hi Brad,
>>
>> Thank you for your answer.
>>
>> I included "itkNumericTraits.h", and it did not change the error.
>>
>> Something I forgot to precise is that the tool compiles without errors on
>> linux (Ubuntu 12.10) and Mac, so I think it is specific to the compiler from
>> Visual Studio 2008.
>>
>> The weird part is that it seems to look for NumericTraits in "itk::itk",
>> which I assume is wrong:
>>
>> "
>> error C2039: 'NumericTraits' : is not a member of 'itk::itk'
>> "
>> I have no idea of where it can come from.
>>
>> By the way, the code of my tool is here. The file "tensorscalars.cxx" is in
>> PrivateLibrary/tensorscalars.cxx
>>
>> Thanks,
>> Adrien
>>
>> ________________________________
>> From: Bradley Lowekamp [blowekamp at mail.nih.gov]
>> Sent: Wednesday, January 30, 2013 12:01 PM
>> To: Kaiser, Adrien
>> Subject: Re: [Insight-users] ITK windows compilation error
>>
>> Hello,
>>
>> My first guess would be that it's a missing include.
>>
>> Did you including "itkNumericTraits.h" before
>> itkVectorIndexSelectionCastImageFilter.h. If that is the problem then it
>> looks like there is a missing include in the ITK header.
>>
>> Brad
>>
>> On Jan 30, 2013, at 11:41 AM, "Kaiser, Adrien" <akaiser at email.unc.edu>
>> wrote:
>>
>> Hello everybody,
>>
>> I try to compile a tool (dtiprocess) using ITK (ITKv4.3.0 from
>> git://itk.org/ITK.git, commit from 12-16-2012 13:05:15) on Windows (Windows
>> 7 with Visual Studio 208).
>> ITK compiled without any problem, but the tool fails to compile and gives me
>> an error in one of the ITK classes:
>> "
>> 1>Compiling...
>> 1>tensorscalars.cxx
>> 1>C:\Devel\E-b\DTIAtlasBuilder-build\I4-i\include\ITK-4.3\itkVectorIndexSelectionCastImageFilter.h(145)
>> : error C2039: 'NumericTraits' : is not a member of 'itk::itk'
>> 1>
>> C:\Devel\E-b\DTIAtlasBuilder-build\I4-i\include\ITK-4.3\itkVectorIndexSelectionCastImageFilter.h(136)
>> : while compiling class template member function 'void
>> itk::VectorIndexSelectionCastImageFilter<TInputImage,TOutputImage>::BeforeThreadedGenerateData(void)'
>> 1>        with
>> 1>        [
>> 1>            TInputImage=itk::Image<DeformationPixelType,3>,
>> 1>            TOutputImage=RealImageType
>> 1>        ]
>> 1>        ..\..\dtiprocessTK\PrivateLibrary\tensorscalars.cxx(93) : see
>> reference to class template instantiation
>> 'itk::VectorIndexSelectionCastImageFilter<TInputImage,TOutputImage>' being
>> compiled
>> 1>        with
>> 1>        [
>> 1>            TInputImage=itk::Image<DeformationPixelType,3>,
>> 1>            TOutputImage=RealImageType
>> 1>        ]
>> 1>C:\Devel\E-b\DTIAtlasBuilder-build\I4-i\include\ITK-4.3\itkVectorIndexSelectionCastImageFilter.h(145)
>> : warning C4091: 'typedef ' : ignored on left of 'itk::NumericTraits' when
>> no variable is declared
>> 1>C:\Devel\E-b\DTIAtlasBuilder-build\I4-i\include\ITK-4.3\itkVectorIndexSelectionCastImageFilter.h(145)
>> : error C2143: syntax error : missing ';' before '<'
>> 1>C:\Devel\E-b\DTIAtlasBuilder-build\I4-i\include\ITK-4.3\itkVectorIndexSelectionCastImageFilter.h(145)
>> : error C2143: syntax error : missing ';' before '<'
>> 1>C:\Devel\E-b\DTIAtlasBuilder-build\I4-i\include\ITK-4.3\itkVectorIndexSelectionCastImageFilter.h(148)
>> : error C2039: 'NumericTraits' : is not a member of 'itk::itk'
>> 1>C:\Devel\E-b\DTIAtlasBuilder-build\I4-i\include\ITK-4.3\itkVectorIndexSelectionCastImageFilter.h(148)
>> : warning C4091: 'typedef ' : ignored on left of 'itk::NumericTraits' when
>> no variable is declared
>> 1>C:\Devel\E-b\DTIAtlasBuilder-build\I4-i\include\ITK-4.3\itkVectorIndexSelectionCastImageFilter.h(148)
>> : error C2143: syntax error : missing ';' before '<'
>> 1>C:\Devel\E-b\DTIAtlasBuilder-build\I4-i\include\ITK-4.3\itkVectorIndexSelectionCastImageFilter.h(148)
>> : error C2143: syntax error : missing ';' before '<'
>> 1>C:\Devel\E-b\DTIAtlasBuilder-build\I4-i\include\ITK-4.3\itkVectorIndexSelectionCastImageFilter.h(148)
>> : error C2039: 'ScalarRealType' : is not a member of '`global namespace''
>> 1>C:\Devel\E-b\DTIAtlasBuilder-build\I4-i\include\ITK-4.3\itkVectorIndexSelectionCastImageFilter.h(152)
>> : error C2065: 'PixelRealType' : undeclared identifier
>> 1>C:\Devel\E-b\DTIAtlasBuilder-build\I4-i\include\ITK-4.3\itkVectorIndexSelectionCastImageFilter.h(152)
>> : error C2070: ''unknown-type'': illegal sizeof operand
>> 1>C:\Devel\E-b\DTIAtlasBuilder-build\I4-i\include\ITK-4.3\itkVectorIndexSelectionCastImageFilter.h(152)
>> : error C2065: 'PixelScalarRealType' : undeclared identifier
>> 1>C:\Devel\E-b\DTIAtlasBuilder-build\I4-i\include\ITK-4.3\itkVectorIndexSelectionCastImageFilter.h(152)
>> : error C2070: ''unknown-type'': illegal sizeof operand
>> "
>>
>> The part of the tool's code where the error appears is:
>> (tensorscalars.cxx:93)
>> "
>> #include "itkVectorIndexSelectionCastImageFilter.h"
>>
>>  (...)
>>
>> template<>
>> itk::Image<double, 3>::Pointer createLambda<double>(TensorImageType::Pointer
>> timg, // Tensor image
>>                                                     EigenValueIndex
>> lambdaind) // Lambda index
>> {
>>   // Not really a deformation image output jsut a 3-vector of doubles.
>>   typedef
>> itk::FastSymmetricEigenAnalysisImageFilter<TensorImageType,DeformationImageType>
>> LambdaFilterType;
>>   LambdaFilterType::Pointer lambdafilter = LambdaFilterType::New();
>>   lambdafilter->SetInput(timg);
>>
>> lambdafilter->OrderEigenValuesBy(LambdaFilterType::FunctorType::OrderByValue);
>>   lambdafilter->Update();
>>
>> (l.93)  typedef
>> itk::VectorIndexSelectionCastImageFilter<LambdaFilterType::OutputImageType,
>> RealImageType> ElementSelectAdaptorType;
>>   ElementSelectAdaptorType::Pointer elementSelect =
>> ElementSelectAdaptorType::New();
>>   elementSelect->SetInput(lambdafilter->GetOutput());
>>   // Reverse semanatics of lambda_1 from ITK.
>>   // In our convention lambda_1 is the largest eigenvalue whereas in
>>   // ITK its the smallest
>>   elementSelect->SetIndex(2 - lambdaind);
>>   elementSelect->Update();
>>
>>   return elementSelect->GetOutput();
>> }
>> "
>>
>> I did not write the tool myself, but I think the problem comes from the tool
>> and not from ITK, I just can not figure out what I need to change to make it
>> compile.
>> Does anyone have any ideas ?
>>
>> Thanks,
>> Best Regards,
>>
>> Adrien Kaiser
>> University of North Carolina at Chapel Hill
>> _____________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Kitware offers ITK Training Courses, for more information visit:
>> http://www.kitware.com/products/protraining.php
>>
>> Please keep messages on-topic and check the ITK FAQ at:
>> http://www.itk.org/Wiki/ITK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.itk.org/mailman/listinfo/insight-users
>>
>>
>>
>> _____________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Kitware offers ITK Training Courses, for more information visit:
>> http://www.kitware.com/products/protraining.php
>>
>> Please keep messages on-topic and check the ITK FAQ at:
>> http://www.itk.org/Wiki/ITK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.itk.org/mailman/listinfo/insight-users
>>


More information about the Insight-users mailing list