Heads up: glibmm/gtkmm now requires -std=c++11

Josh Stone jistone at redhat.com
Wed Sep 23 00:56:18 UTC 2015


On 09/22/2015 05:49 PM, Mamoru TASAKA wrote:
> Kalev Lember wrote on 09/23/2015 09:35 AM:
>> Hi,
>>
>> A quick heads up to anybody who might run into cryptic build errors when
>> building apps that use glibmm/gtkmm:
>>
>> Latest glibmm/gtkmm stack in rawhide and F23 now uses C++11 features in
>> header files. This means when building other programs that use those
>> headers, the C++ compiler needs to be in C++11 mode now.
>>
>> The fix is simple: make sure -std=c++11 is passed to the compiler.
>>
>> It can be done in either in upstream build scripts or hacked in
>> downstream in spec files. I would usually always suggest to go for
>> upstreamable fixes, but I think in this case it's fine to do it
>> downstream as well. The reason is that the workaround is just a
>> temporary measure until GCC switches to use C++11 by default, which is
>> probably going to happen in F24 when GCC 6 lands.
>>
>> Here's an example how to do it in a spec file:
>> http://pkgs.fedoraproject.org/cgit/inkscape.git/commit/?id=fc745c8687dd8a362235340bd3481ff18925dbaf
>>
>> And here's how to do it in an upstreamable way:
>> https://git.gnome.org/browse/gnome-system-monitor/commit/?id=e5d3ac014d7acc73c5f508a937c5656ffa8f08ad
>> or
>> https://git.gnome.org/browse/gnome-system-monitor/commit/?id=d81fe60bc3d6a481b6bc330490fd079b5cc30acc
> 
> Rather, can't be pkgconfig file in gtkmm30 modified for now to add -std=c++11
> to Cflags?

I'd guess that they really require *at least* c++11.

A project might instead choose gnu++11, c++14, gnu++14, etc.


More information about the devel mailing list