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

Ali - saveez at hotmail.com
Sat Nov 10 14:22:06 EST 2007


Bill,

I think the default build type for MinGW is set to debug, so, that could explain it.


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!

_______________________________________________
Insight-users mailing list
Insight-users at itk.org

http://www.itk.org/mailman/listinfo/insight-users




_________________________________________________________________
100’s of Music vouchers to be won with MSN Music
https://www.musicmashup.co.uk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20071110/8bc1e346/attachment.html


More information about the Insight-users mailing list