[ITK] [ITK-dev] Problems with Change in itkStaticConstMacro

Bill Lorensen bill.lorensen at gmail.com
Fri Jan 22 11:00:27 EST 2016


I think I am seeing the same error. I get this error on my Mac running gcc 4.2.1
Building CXX object
Modules/Core/Common/test/CMakeFiles/ITKCommon1TestDriver.dir/itkImageRegionExplicitTest.cxx.o
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:
In instantiation of ‘const unsigned int
itk::ImageRegion<1u>::ImageDimension’:
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:92:
  instantiated from ‘itk::ImageRegion<1u>’
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/test/itkImageRegionExplicitTest.cxx:22:
  instantiated from here
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:92:
error: explicit instantiation of
‘itk::ImageRegion<1u>::ImageDimension’ but no definition available
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:
In instantiation of ‘const unsigned int
itk::ImageRegion<1u>::SliceDimension’:
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:104:
  instantiated from ‘itk::ImageRegion<1u>’
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/test/itkImageRegionExplicitTest.cxx:22:
  instantiated from here
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:104:
error: explicit instantiation of
‘itk::ImageRegion<1u>::SliceDimension’ but no definition available
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:
In instantiation of ‘const unsigned int
itk::ImageRegion<1u>::ImageDimension’:
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:92:
  instantiated from ‘itk::ImageRegion<1u>’
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/test/itkImageRegionExplicitTest.cxx:22:
  instantiated from here
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:92:
error: explicit instantiation of
‘itk::ImageRegion<1u>::ImageDimension’ but no definition available
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:
In instantiation of ‘const unsigned int
itk::ImageRegion<1u>::SliceDimension’:
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:104:
  instantiated from ‘itk::ImageRegion<1u>’
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/test/itkImageRegionExplicitTest.cxx:22:
  instantiated from here
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:104/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:
In instantiation of ‘const unsigned int
itk::ImageRegion<1u>::ImageDimension’:
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:92:
  instantiated from ‘itk::ImageRegion<1u>’
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/test/itkImageRegionExplicitTest.cxx:22:
  instantiated from here
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:92:
error: explicit instantiation of
‘itk::ImageRegion<1u>::ImageDimension’ but no definition available
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:
In instantiation of ‘const unsigned int
itk::ImageRegion<1u>::SliceDimension’:
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:104:
  instantiated from ‘itk::ImageRegion<1u>’
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/test/itkImageRegionExplicitTest.cxx:22:
  instantiated from here
/Users/lorensen/ProjectsGIT/ITK/Modules/Core/Common/include/itkImageRegion.h:104:
error: explicit instantiation of
‘itk::ImageRegion<1u>::SliceDimension’ but no definition available
make[2]: *** [Modules/Core/Common/test/CMakeFiles/ITKCommon1TestDriver.dir/itkImageRegionExplicitTest.cxx.o]
Error 1
make[1]: *** [Modules/Core/Common/test/CMakeFiles/ITKCommon1TestDriver.dir/all]
Error 2


On Fri, Jan 22, 2016 at 10:05 AM, Bradly Lowekamp <brad at lowekamp.net> wrote:
> I have reproduced this error now with GCC 4.1, 4.2, and 4.3. GCC version 4.5
> works.
>
> Thank you for your help in addressing this problem.
>
> I apologize for not having documentation for the systems and justifications
> for the versions of compilation tools. I certainly should move to docker
> images to build the distributions for Linux as well. We have had great
> success with the portability and availability of the binary distributions
> for SimpleITK. This has involve a lot of testing and modification for the
> build platforms to get where it has been working. I would had for this to be
> reduce due to one preference for implementing static constant integers.
>
> Brad
>
> On Jan 21, 2016, at 4:45 PM, Matt McCormick <matt.mccormick at kitware.com>
> wrote:
>
> On Thu, Jan 21, 2016 at 4:07 PM, Bradly Lowekamp <blowekamp at mail.nih.gov>
> wrote:
>
> Gcc 4.2 runs into the same ITK bug with explicit instantiation too.
>
> On Jan 21, 2016, at 3:35 PM, Matthew McCormick (thewtex)
> <matt at mmmccormick.com> wrote:
>
> On Thu, Jan 21, 2016 at 3:27 PM, Bradly Lowekamp <blowekamp at mail.nih.gov>
> wrote:
>
> It’s certainly would be great if I could rely on using gcc 4.8+ for building
> the distributions for SimpleITK. But my understanding for several situations
> 4.1 is still essentially required.
>
>
> What are the situations?  GCC 4.1 is not required by PEP 513.
>
>
> Anaconda Python 2.7, OSX Python.org distribution and OSX system, need
> apple’s gcc 4.2
>
>
> How is this build environment reproduced (OSX and XCode version)?
>
>
> Your blog post solution for static linking in un-accetable as I don’t want
> to use a GPL license. Along with static linking not being recommended with
> PEP 513, and lastly it can cause conflicts when used in a loaded module with
> an older libc version.
>
>
> My blog post does not say static linking is required or the GPL is required.
>
>
> "Statically linking libstdc++ avoids version compatibility issues.”
>
> Statically, linking an LGPL library such as libstdc++ is “messy”.
>
>
> libstdc++ is different from glibc.
>
> Statically linking libstdc++ in terms of the license is fine.  It is
> available with the GCC Runtime Library Exception:
>
>  https://gcc.gnu.org/onlinedocs/libstdc++/manual/license.html
>
>
> PEP 513 clearly says:
>
> GCC <= 4.2.0
>
>
> This excludes GCC 4.1.
>
>
> 4.1 <= 4.2, so it’s included.
>
>
> This excludes GCC 4.1 from being a requirement.  GCC 4.2 would work.
>
>
> Matt
>
>
>
> _______________________________________________
> 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://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://public.kitware.com/mailman/listinfo/insight-developers
>



-- 
Unpaid intern in BillsBasement at noware dot com
_______________________________________________
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://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://public.kitware.com/mailman/listinfo/insight-developers


More information about the Community mailing list