Search code examples
c++gcccompiler-errorswxwidgets

Trouble with installing wxwidgets 2


If you saw my trouble with installing wxwidgets 1 and if you too get problems again u must look this question and read answers Lets begin, after deleting useless gcc path i got this in console:

from ../../src/common/any.cpp:18:
C:/TDM-GCC-32/lib/gcc/mingw32/5.1.0/include/c++/bits/c++0x_warning.h:32:2: error
: #error This file requires compiler and library support for the ISO C++ 2011 st
andard. This support is currently experimental, and must be enabled with the -st
d=c++11 or -std=gnu++11 compiler options.
 #error This file requires compiler and library support for the \
  ^
In file included from ..\..\include/wx/string.h:46:0,
                 from ..\..\include/wx/any.h:19,
                 from ../../src/common/any.cpp:18:
..\..\include/wx/strvararg.h:350:18: error: 'is_enum' in namespace 'std' does no
t name a template type
     typedef std::is_enum<T> is_enum;
                  ^
..\..\include/wx/strvararg.h:354:54: error: 'is_enum' was not declared in this s
cope
     enum { value = wxFormatStringSpecifierNonPodType<is_enum::value>::value };
                                                      ^
..\..\include/wx/strvararg.h:354:68: error: template argument 1 is invalid
     enum { value = wxFormatStringSpecifierNonPodType<is_enum::value>::value };
                                                                    ^
makefile.gcc:11712: recipe for target 'gcc_mswud\baselib_any.o' failed
mingw32-make: *** [gcc_mswud\baselib_any.o] Error 1

C:\wxWidgets-3.0.2\build\msw>

It was command

cd %WXWIN%\build\msw
mingw32-make -f makefile.gcc clean
>>>mingw32-make -f makefile.gcc BUILD=debug SHARED=0 MONOLITHIC=0 UNICODE=1 WXUNIV=0<<<
mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=0 UNICODE=1 WXUNIV=0

Solution

  • Unfortunately wxWidgets 3.0.2 had been released before g++ 5.1 (and even before, or maybe close to, g++ 4.9), so it doesn't compile out of the box with it in C++98 mode when using it. This problem has been fixed since, but not in an official release, so you have 2 choices:

    1. Apply this fix to your sources. If you're unsure how to do it, your best bet is to just grab the latest sources from WX_3_0_BRANCH from git.
    2. Build in C++11 mode by appending CXXFLAGS=-std=gnu++11 to your make command line. If you do this, remember to use the same flags when building your application using wxWidgets too later!