Developer forums (C::B DEVELOPMENT STRICTLY!) > Development

Codeblocks contrib plugins for wx31 fails to compile with mingw v8.1.0

<< < (3/5) > >>

Miguel Gimenez:
These are the changes mentioned by stahta01. The original macro definition was


--- Code: ---#define WX_DECLARE_OBJARRAY_WITH_DECL(T, name, decl) \
    typedef T _wxObjArray##name;                            \
    _WX_DECLARE_OBJARRAY(_wxObjArray##name, name, wxArrayPtrVoid, decl)

--- End code ---

and the current is


--- Code: ---#define WX_DECLARE_OBJARRAY_WITH_DECL(T, name, classdecl)                     \
    classdecl wxObjectArrayTraitsFor##name                                    \
    {                                                                         \
    public:                                                                   \
        static T* Clone(const T& item);                                       \
        static void Free(T* p);                                               \
    };                                                                        \
    typedef wxBaseObjectArray<T, wxObjectArrayTraitsFor##name>                \
        wxBaseObjectArrayFor##name;                                           \
    typedef int (wxCMPFUNC_CONV *CMPFUNC##T)(T **pItem1, T **pItem2);         \
    classdecl name : public wxBaseObjectArrayFor##name                        \
    {                                                                         \
    public:                                                                   \
        name() : wxBaseObjectArrayFor##name() { }                             \
        name(const name& src) : wxBaseObjectArrayFor##name(src) { }           \
    }

--- End code ---

but this comment in wxWidgets docs (see http://docs.wxwidgets.org/trunk/dynarray_8h.html#a015654ccb706038e60295cc202679be3)


--- Quote ---// note: not "MyClass *"!
--- End quote ---

suggests that


--- Code: ---WX_DECLARE_USER_EXPORTED_OBJARRAY(wxWindow*, wxWindowPtrArray, WXDLLIMPEXP_FNB);
--- End code ---

is incorrect. The original macro definition was tolerant, but the new is not.

gd_on:
Just to add some informations.
I tried to compile wxwidgets 3.1.1 and codeblocks svn 11416 with mingw 64 bits 7.3 (I used x86_64-7.3.0-release-posix-seh-rt_v5-rev0.7z, but I'm not sure if it's the best choice !). It's OK.
With x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z, wxwidgets 3.1.1 compilation fails with problems decribed above (WX_DECLARE...), so no way to compile C::B.
gd_on

Miguel Gimenez:
This patch solves the issue with Windows 7, wxWidgets-master, CB trunk, GCC 7.2.0, 32 bits.

If somebody tests it successfully in another environment (p.e. GCC 8 ) I will post a ticket with the patch in SF.

ouch:
Codeblocks Trunk: 11416

wxWidgets trunk: 1adc3ba

MingW64: i686-8.1.0-posix-sjlj-rt_v6-rev0

On windows 7 64bit home edition.

I can confirm that patch allows it to compile, And upon testing Codeblocks opens up and I'm able to edit files.

So I would say it looks like this fixes it.

Thanks Miguel Gimenez!

stahta01:
To be [more] sure it is safe the Lib Finder plugin needs to be tested.

Tim S.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version