[Insight-users] Re: Compiling error with ITK 3.4.0 on my MinGW platform

Bill Lorensen bill.lorensen at gmail.com
Sat Nov 10 13:55:02 EST 2007


Ali,

As Luis said, there is very little code in the shared libraries. Most of the
code is templated and  does not appear in those libraries.

Are you building with debug? Jim and I did a study a while back, comparing
the sizes of executables with debug/optimization/static/shared combinations.
I can't find my notes on this. I recall that with debug turned on, the
executables were 3-10 times larger.

Bill

On Nov 10, 2007 10:48 AM, Ali - <saveez at hotmail.com> wrote:

> Luis,
>
> I remember trying to compile the demons registration example under MinGW
> and static-linking it to ITK - I think the exe file was something about 4 MB
> or so. Regardless of everything else, just think of the process in this way:
> the linker has to 'generate' a big binary file for static linking (a few MB)
> comparing to the shared linking version (of the order of 0.1 MB). This
> binary 'generation' is a slow one which you may not feel when compiling the
> shared-lib ITK once and linking against it many times. But it becomes a pain
> when you have to static-link your exe many times.
>
> I did not do any profiling on this, but try the demons registration
> example, qualitatively, it felt like the linking time linearly increased
> with the output binary size.
>
> >
> >
> > Hi Ali,
> >
> > >
> > > Even if there were no eroors, ITK under MinGW is not really useful
> > > right now, ITK is a big template-basd library and static-linking it
> > > to your binary will be a slow-long process.
> >
> >
> >
> > I'm not quite sure the statement above makes sense.
> >
> >
> > 1) Yes, ITK is an almost fully templated library
> >
> > 2) Whether you build it as shared or static library,
> > a very small fraction of the code goes into that library
> >
> > 3) Most of the code of ITK is actually compiled when you
> > compile your application, not when you build ITK.
> >
> >
> > The difference between using static or shared when building
> > ITK libraries, make that the linking time of your application
> > will change by a small fraction. Linking is in itself a small
> > fraction of the build time compared to compilation itself.
> >
> >
> >
> > Regards,
> >
> >
> > Luis
> >
> >
> >
> > --------------
> > Ali - wrote:
> > > Thomas,
> > >
> > > ITK could be compiled on MinGW only as a static library -- when the
> > > shared-lib flag was on there were linking errors. There were attempts
> to
> > > solve these issue just before the 3.4 release, but it didn't get
> > > anywhere. The errors that you reported could be some side effects of
> > > those attempts.
> > >
> > > Even if there were no eroors, ITK under MinGW is not really useful
> right
> > > now, ITK is a big template-basd library and static-linking it to your
> > > binary will be a slow-long process.
> > >
> > >
> > > Hi ITK users
> > >
> > > Between ITK v 3.2.0 and v 3.4.0, the file
> > > ITK/Utilities/itkjpeg/jconfig.h.in had been modified in the line 24.
> > > In 3.2.0 version the line was :
> > > #if defined (_WIN32) && !(defined(__CYGWIN__) ||
> > > defined(__MINGW32__))
> > > In 3.4.0 version the line is :
> > > #if defined (_WIN32) && !defined(__CYGWIN__)
> > >
> > > On my MinGW platform, the ITK 3.2.0 compiling with success.
> > > But the new version 3.4.0 generate this compiling error :
> > > [ 5%] Building C object
> > > Utilities/itktiff/CMakeFiles/itktiff.dir/tif_jpeg.obj
> > > In file included from
> > > G:/OTB-DART-NIGHTLY/sources/InsightToolkit-3.4.0/Utilities/itktiff/tif_jpeg.c:74:
>
> > >
> > > G:/OTB-DART-NIGHTLY/nightly/mingw/outils/binaries/static/debug/itk-
> 3.4.0-MinGW/Utilities/itkjpeg/8/jpeglib.h:99:
> > >
> > > parse error before "boolean"
> > > G:/OTB-DART-NIGHTLY/nightly/mingw/outils/binaries/static/debug/itk-
> 3.4.0-MinGW/Utilities/itkjpeg/8/jpeglib.h:115:
> > >
> > > parse error before "boolean"
> > > G:/OTB-DART-NIGHTLY/nightly/mingw/outils/binaries/static/debug/itk-
> 3.4.0-MinGW/Utilities/itkjpeg/8/jpeglib.h:167:
> > >
> > > parse error before "boolean"
> > > G:/OTB-DART-NIGHTLY/nightly/mingw/outils/binaries/static/debug/itk-
> 3.4.0-MinGW/Utilities/itkjpeg/8/jpeglib.h:182:
> > >
> > > parse error before '*' token
> > > :
> > > :
> > > (with CMake v 2.4.6)
> > >
> > > Could you help me, How can I solve my problem ?
> > >
> > > Thanks,
> > > Thomas
> > >
> > >
> ------------------------------------------------------------------------
> > > Are you the Quizmaster? Play BrainBattle with a friend now!
> > > <http://specials.uk.msn.com/brainbattle>
> > >
> > >
> > >
> ------------------------------------------------------------------------
> > >
> > > _______________________________________________
> > > Insight-users mailing list
> > > Insight-users at itk.org
> > > http://www.itk.org/mailman/listinfo/insight-users
>
> ------------------------------
> Get free emoticon packs and customisation from Windows Live. Pimp My Live!<http://www.pimpmylive.co.uk>
>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20071110/5cfd34a0/attachment.html


More information about the Insight-users mailing list