Re: compiling gtkmm with atkmm support fails in implementor.cc
- From: Phil Wolff <adiabat centurylink net>
 
- To: gtkmm-list gnome org
 
- Subject: Re: compiling gtkmm with atkmm support fails in implementor.cc
 
- Date: Thu, 19 Nov 2015 11:25:29 -0800
 
1. What if somewhere there's a line that says "#define 
GTKMM_ATKMM_ENABLED 0" ?
2. Is libatkmm being included in your link commands?
On 11/19/2015 10:51 AM, codekiddy wrote:
I wonder why the heck, but it doesn't work for me.
I recompiled gtkmm 3 times already at no avail.
Used your suggestion to force include a header with following contents:
#ifndef GTKMM_ATKMM_ENABLED
*#define* *GTKMM_ATKMM_ENABLED 1*
#endif
I set in Common properties > C\C++ > Advanced > Force Include File > 
"the name of the file".h
This didn't work
then I went on and defined preprocessor macro in
Common properties > C\C++ > Preprocessor > Preprocessor definitions > 
GTKMM_ATKMM_ENABLED
Rebuilt solution clean, and no luck!
I also defined that macro in gtkmmconfig.h as well. recompiled and it 
still does not work.
I also triple checked if gtkmmconfig.h has this macro defined in 
installation directory where other test project search for headers.
Test project include this header by force as well.
What am I doing wrong here?
On Thu, Nov 19, 2015 at 5:35 PM, John Emmas <john creativepost co uk 
<mailto:john creativepost co uk>> wrote:
    On 18/11/2015 21:51, John Emmas wrote:
    earlier today someone mentioned that if GTKMM_ATKMM_ENABLED is #defined when building the Gtkmm DLL, it 
must also get #defined in anything which uses that DLL.  That makes a lot of sense - because otherwise, 
certain objects (e.g. class Widget) will have different sizes in different modules.  To me, that sounds like 
a promising explanation for this 'delete' problem.
    [...]
    I'll try rebuilding everything, making absolutely sure that GTKMM_ATKMM_ENABLED is #defined in all 
modules.  Fingers crossed, that might solve the problem!
    Hi Kjell.  I just found some time to try the above strategy and
    guess what...  that fixed it !!
    codekiddy - the secret to making this work is that every module
    which uses gtkmm MUST know the status of GTKMM_ATKMM_ENABLED.  In
    theory, gtkmmconfig.h should achieve this - but to be absolutely
    certain (for testing purposes) I made use of MSVC's /FI option
    (ForceInclude). I used it to force include a specific header file
    in which I'd #defined GTKMM_ATKMM_ENABLED.  This guarantees that
    _every_ compiled source file will know about that #define.  Simply
    making the change in gtkmmconfig.h should achieve the same thing
    but it looks like that isn't quite working properly.
    In fact, I know it isn't working properly - because after I used
    the /FI option, everything which previously linked to gtkmm now
    also needed to get linked to atkmm.
    So the problem is that something somewhere needs to be #including
    gtkmmconfig.h but is failing to do so.  My guess would be
    'gtkmm/window.cc' (maybe??)  Perhaps even anything that references
    a Widget?  If it forgets to #include widget.h the wrong size might
    be assumed for 'Widget'.  Admittedly I'm guessing here - but it
    does seem like there's an important #include missing somewhere  :-(
    John
    _______________________________________________
    gtkmm-list mailing list
    gtkmm-list gnome org <mailto:gtkmm-list gnome org>
    https://mail.gnome.org/mailman/listinfo/gtkmm-list
_______________________________________________
gtkmm-list mailing list
gtkmm-list gnome org
https://mail.gnome.org/mailman/listinfo/gtkmm-list
--
Just remember, if we get caught, you're deaf and I don't speak English.
    -- Unknown
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]