[Insight-users] compiling ITK with new Borland

dean.inglis at camris.ca dean.inglis at camris.ca
Fri Jan 13 13:49:13 EST 2006


Hi Hans,

thanks for the tip.  I hope to be able to 
really dig into templating in ITK to figure
out the rest, as it seems so far that there
is not much interest in supporting BCB 2006
yet.

best regards,
Dean

> I know that it does  not take care of the problem completly, but I would 
> suggest that you take a slightly different approach.
> 
> Instead of adding math.h to the includes for fabs, change fabs to 
> vcl_abs, and include the proper vcl librar instead.  This is a more 
> portable way to do this, and it is also not in conflict with an upcoming 
> project to do these types of conversions system wide in ITK.
> 
> Hans
> 
> 
> 
> dean.inglis at camris.ca wrote:
> 
> >Hi,
> >
> >I have purchased a license to the new borland c++ builder 
> >product:
> >
> >Borland Developer Studio
> >Borland C++ Builder 2006 - which I guess translates into bcb7?
> >
> >which has a new linker / compiler but same make program.  
> >I have had very minor problems building vtk and would now 
> >like to have it go at ITK. Below are a list of errors starting 
> >with very simple fixes due to missing includes followed by more 
> >serious errors that are due to the use of templating and typedef 
> >in ITK that I am currently unfamiliar with and so am not sure how
> >to fix.  
> >
> >Is anyone willing to spend some time getting
> >this working with me?  I know sacrifices were made at the
> >start to accommodate the borland compilers, but I think this 
> >is still doable wtih the present architecture.  If I am
> >wrong, please let me know and why.
> >
> >best regards,
> >Dean 
> >
> >
> >metaEllipse.cxx - #include <mem.h> // for mem functions
> >metaImage.cxx - #include <mem.h> // for mem functions
> >metaObject.cxx - #include <mem.h> // for mem functions
> >
> >DICOMBuffer.cxx - #include <mem.h> // for mem functions
> >DICOMAppHelper.cxx - #include <mem.h> // for mem functions
> >
> >gdcmDicomDir.cxx - #include <mem.h> // for mem functions
> >gdcmDocEntrySet.cxx - #include <mem.h> // for mem functions
> >gdcmDocument.cxx - #include <mem.h>   // for mem functions
> >                   #include <ctype.h> // for isdigit
> >                   #include <stdlib.h>// for atoi
> >gdcmFile.cxx - #include <stdlib.h>// for atoi
> >gdcmJpeg.cxx - #include <mem.h> // for mem functions
> >gdcmPixelReadConvert.cxx - #include <mem.h> // for mem functions
> >gdcmRLEFramesInfo.cxx - #include <mem.h> // for mem functions
> >gdcmTS.cxx - #include <ctype.h> // for isdigit
> >gdcmValEntry.cxx -   #include <ctype.h> // for isdigit
> >                   #include <stdlib.h>// for atoi
> >gdcmException.cxx - #include <process.h>   // for exit
> >gdcmFileHelper.cxx - #include <mem.h> // for mem functions
> >
> >error with vcl_complex.h: unrecognized class or namespace _STL
> >
> >// Borland C++ 5.6 switches between Rogue Wave and stlport based on
> >// the _USE_OLD_RW_STL macro.  A bug in the compiler prevents the
> >// stlport definitions of the complex<T> overloads of standard math
> >// functions from being included in the std namespace by a
> >// "using namespace _STL" present in the included headers.
> >// We add them explicitly.  - Brad King
> >
> >Now Borland 5.8 no longer uses stlport, or RogueWave, but Dinkumware's implementation,
> >so in CMAkeCache.txt add -D_USE_OLD_RW_STL to the C and Cxx compiler flags.
> >
> >itkMersenneTwisterRandomVariateGenerator.h -   #include <stdlib.h>// for rand
> >itkVariableLengthVector.txx - #include <mem.h> // for mem functions
> >itkVector.txx - #include <math.h> // for sqrt
> >
> >itkCumulativeGaussianCostFunction.cxx  - #include <math.h> // for sqrt, pow
> >itkCumulativeGaussianOptimizer.cxx - #include <math.h> // for pow, sqrt, fabs
> >itkOnePlusOneEvolutionaryOptimizer.cxx  - #include <math.h> // for pow
> >itkSPSAOptimizer.h  - #include <math.h> // for fabs
> >itkBrains2HeaderBase.cxx - #include <stdlib.h> // for atoi, atof
> >itkGE4ImageIO.cxx - #include <stdlib.h> // for atoi
> >itkMetaImageIO.cxx - #include <stdlib.h>   // for malloc, free
> >itkRegularExpressionSeriesFileNames.cxx - #include <stdlib.h> // for atof
> >itkTIFFImageIO.cxx  - #include <stdlib.h> // for atoi
> >
> >
> >itkAmoebaOptimizerTest.cxx - #include <math.h> // for fabs
> >itkConjugateGradientOptimizerTest.cxx - #include <math.h> // for fabs
> >itkCumulativeGaussianOptimizerTest.cxx - #include <math.h> // for fabs
> >itkLBFGSOptimizerTest.cxx - #include <math.h> // for fabs
> >itkLevenbergMarquardtOptimizerTest.cxx - #include <math.h> // for fabs, atof
> >                                       - #include <stdlib.h> // for atoi         
> >
> >
> >There is also a number of errors of the form:
> >
> >'identifier' is not a member of 'struct' (E2316)
> >You are trying to reference 'identifier' as a member of 'struct', but it is not a member
> >
> >




More information about the Insight-users mailing list