[Insight-users] ITK windows compilation error
Bradley Lowekamp
blowekamp at mail.nih.gov
Thu Jan 31 11:46:20 EST 2013
Thanks for sharing that information.
You have the same version that I am running. I find it odd that we have not encountered this issue before.
Brad
On Jan 31, 2013, at 10:49 AM, "Kaiser, Adrien" <akaiser at email.unc.edu> wrote:
> Helllo Brad,
>
> I think SP1 is installed on my windows system.
> The patch fixed my error yesterday.
>
> Here is what the Help menu gave me:
>
> Microsoft Visual Studio 2008
> Version 9.0.30729.1 SP
> Microsoft .NET Framework
> Version 3.5 SP1
>
> I also attached the full documentation about what is installed, and Service Pack 1 is part of the list.
>
> Thanks,
> Adrien
>
> ________________________________________
> From: Bradley Lowekamp [blowekamp at mail.nih.gov]
> Sent: Wednesday, January 30, 2013 6:51 PM
> To: Kaiser, Adrien
> Cc: Matt McCormick; Bradley Lowekamp; insight-users at itk.org; Budin, Francois
> Subject: Re: [Insight-users] ITK windows compilation error
>
> Hello Adrien,
>
> What specific version of VS 2008 are you using? Can you get it from the help/about menu?
>
> I am suspicions that you don't have SP1 applied. There are many important bug fixes in that patch for the compiler and the SP1 is essentially required.
>
> Thanks,
> Brad
>
> On Jan 30, 2013, at 2:37 PM, "Kaiser, Adrien" <akaiser at email.unc.edu> wrote:
>
>> Hi Matt,
>>
>> Thank you for this patch.
>>
>> I tried to remove these extra itk namespaces before and it removed the error, but I did not think that my error could come from the ITK code.
>>
>> I just reviewed the patch, it worked, but there are more than this error.
>>
>> These are other places where the extra itk namespace is present:
>> itkSpacialObject.hxx: l.94, 132, 586 : "itk::ExpceptionObject"
>> itkImageAdaptor.h: l. 411 : "itk::VectorImage"
>> itkTransform.hxx: l. 418 : "itk::CrossHelper"
>>
>> These created the same error "error C2039: 'XX' : is not a member of 'itk::itk' ", and removing the extra "itk::" removed the errors.
>> I think you should patch these too.
>>
>> Thanks,
>> Adrien Kaiser
>>
>> ________________________________________
>> From: Matt McCormick [matt.mccormick at kitware.com]
>> Sent: Wednesday, January 30, 2013 1:46 PM
>> To: Kaiser, Adrien
>> Cc: Bradley Lowekamp; insight-users at itk.org; Budin, Francois
>> Subject: Re: [Insight-users] ITK windows compilation error
>>
>> 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
>>>
>
> <VS2008Version.txt>
More information about the Insight-users
mailing list