[Interest] Several issues compiling Qt 4.8.4 with mingw-w64 4.8.1, possible related to "-std=gnu++11"

Koehne Kai Kai.Koehne at digia.com
Tue Apr 16 15:48:31 CEST 2013



> -----Original Message-----
> From: interest-bounces+kai.koehne=digia.com at qt-project.org
> [mailto:interest-bounces+kai.koehne=digia.com at qt-project.org] On Behalf
> Of K. Frank
> Sent: Tuesday, April 16, 2013 1:35 PM
> To: Qt-interest
> Subject: Re: [Interest] Several issues compiling Qt 4.8.4 with mingw-w64
> 4.8.1, possible related to "-std=gnu++11"
> 
> Hello Kai!
> 
> On Tue, Apr 16, 2013 at 2:53 AM, Koehne Kai <> wrote:
> >
> >> -----Original Message-----
> >> [mailto:interest-bounces+kai.koehne=digia.com at qt-project.org] On
> >> Behalf Of K. Frank [...] I also have the concern that if I do turn
> >> off c++11 when building QtScript / QtWebKit, even if the Qt build
> >> succeeds, I would still expect compiling any of my own code that
> >> jointly uses c++11 and QtScript / QtWebKit to fail because I am
> >> seeing the compilation errors in the header files.  Is this a
> >> legitimate concern?  If so, is there some way I might work around it?
> >
> > Actually I'd expect that to work just fine. The commonly reported issue
> with mixing e.g. -std=c++11 and -std=gnu++98 (the default) is ABI changes in
> the std:: namespace. Since Qt does use it only sparingly, and in inline
> methods, IMO you should be fine compiling your app with e.g. std=c++11
> and still compile against stock QtScript/QtWebKit.
> 
> I'd like to follow up on this because I don't fully understand.
> 
> First, I understand that Qt's limited usage of the std namespace means
> (hopefully) that it avoids the ABI differences between -std=c++11 and -
> std=gnu++98.
> 
> My concern is the header files.  When I compile my code that uses Qt
> (whether or not the Qt libraries compiled or whether or not there is an ABI
> issue), I include various headers for the Qt features I am using.  I haven't
> traced through which Qt headers include which other Qt headers, but, in
> general, including a top-level "user" header pulls in a number of supporting
> headers.

I'm not aware anybody has systematically tried that yet.  If there are issues, _and_ there's an easy, BC compatible fix for it, I'm all for applying it to Qt 4.x. 

Anyhow, in the public Qt API we tend to be pretty conservative & well-behaved, so I think there's a fair chance that you'll just be able to compile your stuff . The files you mentioned (HashTable.h and JSImmediate.h) are not part of the  public API.

Just give it a try and tell us what you find :)

Regards

Kai




More information about the Interest mailing list