Compilation error

  • Ocelot

    Ocelot - 2007-12-28

    During compilation I receive error:
    mingw32-g++.exe -Wall -mms-bitfields -pipe -mthreads -D__WX__ -D__WXMSW__ -DWXUSINGDLL -DWX_PRECOMP  -O3  -Wall -Winvalid-pch -include "wx_pch.h" -fno-strict-aliasing -DWXMAKINGDLL_SF -DWXMAKINGDLL_XS -DWIN32 -D_WINDOWS -DNDEBUG    -I..\host\include -IH:\Dev\Libs\wxWidgets\wxWidgets-2.8.7\include -IH:\Dev\Libs\wxWidgets\wxWidgets-2.8.7\build-release\lib\wx\include\msw-ansi-release-2.8 -IH:\Dev\Libs\wxWidgets\wxWidgets-2.8.7\build-release\\contrib\include -I..\include -I..\src -IH:\Dev\Libs\wxWidgets\wxWidgets-2.8.7\include -IH:\Dev\Libs\wxWidgets\wxWidgets-2.8.7\build-release\lib\gcc_dll\msw -IC:\Dev\MINGW\include  -c h:\Dev\Libs\wxWidgets\wxWidgets-2.8.7\build-release\contrib\wxSF\src\BitmapShape.cpp -o .objs\BitmapShape.o
    In file included from ../include/wx/wxsf/ShapeBase.h:23,
                     from ../include/wx/wxsf/RectShape.h:13,
                     from ../include/wx/wxsf/BitmapShape.h:13,
                     from h:\Dev\Libs\wxWidgets\wxWidgets-2.8.7\build-release\contrib\wxSF\src\BitmapShape.cpp:12:
    ../include/wx/wxsf/../wxxmlserializer/XmlSerializer.h:163: error: ISO C++ forbids declaration of `wxSerializableListNode' with no type

    my wx configuration is:
    ../configure --with-msw --enable-monolithic --enable-shared --disable-debug --enable-optimise  --with-opengl --enable-stl --enable-std_iostreams --enable-std_string --with-zlib=builtin --with-libjpeg=builtin --with-libtiff=builtin --with-libpng=builtin

    I'm novice wx user, but probably the problem is with --enable-stl (wxSerializableListNode* GetFirstChildNode(){return m_lstChildItems.GetFirst();} should return SerializableList::compatibility_iterator not a pointer)

    Thank you for help

    • Michal Bližňák

      Hi, thank you for the feedback! You are right, it looks like the wxWidgets list implementation has changed (I don't use STL in wxWidgets so I didn't noticed it) so I must rewrite my code to support STL lists. I'll do it as soon as possible so check the project site (especially SVN code repository) for the latest updates.

    • Michal Bližňák

      To puzuma: the problem should be fixed in revision 65 so checkout the SVN code. If the problem persists please inform me.

    • Ocelot

      Ocelot - 2007-12-31

      After comment all:
      m_pCurrentCanvasState = NULL; (CanvasHistory.cpp)
      and change all:
      wxNode* node = points->GetFirst(); (ScaledPaintDC.cpp)
      wxList::compatibility_iterator node = points->GetFirst();
      I can compile library, samples and demo.

      Samples run ok, demo starts, takes 100% of processor power but doesn't show anything ;) (I'll be investigate this later)

    • Michal Bližňák

      Oh sh**, it looks like I have to compile the WX with STL support and try to fix it again :) Sorry for any inconvinience and please be patient, I promise I'll fix it (as soon as possible)!

    • Michal Bližňák

      Hopefully, the problem is fixed in the revision 66. I've tested it on the wxMSW 2.8.7 compiled with wxUSE_STL=1 (using MinGW 3.4.5) and everything have worked fine.

      • Ocelot

        Ocelot - 2008-01-03

        Thank you Michał. It's going like a charm, now. The demo, as well. :)

        I have one suggestion.
        During library and sample compilation, thera are build 5 wx_pch.h.gch files, 50M each. Probably, it will be better either use wx "vative" precompiled header
        #include <wx/wxprec.h>
        #ifndef WX_PRECOMP
            #include <wx/wx.h>
        or move your wx_pch.h to one common directory.


Log in to post a comment.