Re: Cross-compiling GlibMM statically to Win32 with MinGW



Oh, this is so very cool.  Thank you very much for this!!



Bob



Cedric Gustin wrote:

Bob Jamison wrote:

Hi, all.

I am one of the guys working on the Inkscape (SVG editor) project,
and I am one of the people who do the builds of Inkscape on Win32.


But on Win32, there is a basic problem when memory is allocated in
one manner in the executable, and freed in a DLL, maybe in another fashion. The converse, DLL--->exe, also applies. The separation of address spaces between the executable and any DLLs it might be using causes segfaults on
Win32 where there would otherwise be no problem.  Thus we cannot use
GtkMM/GlibMM DLLs, and must link statically.   For the most part,
building these static libs on the cross-compiler is no problem.

But for GlibMM, there are several places where the #ifdefs favor dynamic
linking over static, when Win32 compilation is in effect. It seems that the switches assume that a Win32 user will of course want DLLs, and not static libs. I have been able to hack a few files to get the compilation to be static.


This has (very) recently been fixed in CVS. Try to compile glibmm with
./configure --build=i386-pc-mingw32 --disable-shared

If you don't want to go through CVS to grab the latest version, I put a local copy at

http://www.pcpm.ucl.ac.be/~gustin/tmp/glibmm-cvs.tar.gz

Cedric

P.S. : Same thing for libsigc++ and gtkmm. If you want static libs, get the source from CVS. For glibmm, you want to use the glibmm-2-4 branch, for gtkmm the gtkmm-2-4 branch.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]