Page 1 of 1

MinGW-Builds 8.1.0 and WxWidgets 3.1.1 compile error

Posted: Sun May 27, 2018 3:52 pm
by headkase
Using MinGW-Builds GCC 8.1.0:

https://sourceforge.net/projects/mingw- ... posix/seh/

Using this build line for WxWidgets 3.1.1:

Code: Select all

mingw32-make -f makefile.gcc BUILD=release UNICODE=1 SHARED=1 MONOLITHIC=1 CFG=64 CXXFLAGS="-fno-keep-inline-dllexport"
I end up with the following error:

Code: Select all

In file included from ../../src/common/dynload.cpp:25:
..\..\include/wx/msw/private.h: In static member function 'static void* AutoHANDLE<INVALID_VALUE>::InvalidHandle()':
..\..\include/wx/msw/private.h:148:49: error: invalid static_cast from type 'long long unsigned int' to type 'HANDLE' {aka 'void*'}
         return static_cast<HANDLE>(INVALID_VALUE);
                                                 ^
In file included from ..\..\include/wx/gdicmn.h:19,
                 from ..\..\include/wx/event.h:20,
                 from ..\..\include/wx/window.h:18,
                 from ..\..\include/wx/msw/private.h:21,
                 from ../../src/common/dynload.cpp:25:
..\..\include/wx/module.h: In member function 'wxModule* const& wxModuleList::const_iterator::operator*() const':
..\..\include/wx/list.h:834:60: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
                 { return *(pointer_type)m_node->GetDataPtr(); }             \
                                                            ^
..\..\include/wx/list.h:1071:5: note: in expansion of macro 'WX_DECLARE_LIST_4'
     WX_DECLARE_LIST_4(T, Tbase, name, nodetype, classexp, WX_LIST_PTROP_NONE)
     ^~~~~~~~~~~~~~~~~
..\..\include/wx/list.h:1076:5: note: in expansion of macro 'WX_DECLARE_LIST_3'
     WX_DECLARE_LIST_3(elementtype, elementtype, listname, nodename, classexp)
     ^~~~~~~~~~~~~~~~~
..\..\include/wx/list.h:1100:5: note: in expansion of macro 'WX_DECLARE_LIST_2'
     WX_DECLARE_LIST_2(elementtype, listname, wx##listname##Node, class usergoo)
     ^~~~~~~~~~~~~~~~~
..\..\include/wx/module.h:21:1: note: in expansion of macro 'WX_DECLARE_USER_EXPORTED_LIST'
 WX_DECLARE_USER_EXPORTED_LIST(wxModule, wxModuleList, WXDLLIMPEXP_BASE);
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
..\..\include/wx/module.h: In member function 'wxModule* const& wxModuleList::const_reverse_iterator::operator*() const':
..\..\include/wx/list.h:926:60: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
                 { return *(pointer_type)m_node->GetDataPtr(); }             \
                                                            ^
..\..\include/wx/list.h:1071:5: note: in expansion of macro 'WX_DECLARE_LIST_4'
     WX_DECLARE_LIST_4(T, Tbase, name, nodetype, classexp, WX_LIST_PTROP_NONE)
     ^~~~~~~~~~~~~~~~~
..\..\include/wx/list.h:1076:5: note: in expansion of macro 'WX_DECLARE_LIST_3'
     WX_DECLARE_LIST_3(elementtype, elementtype, listname, nodename, classexp)
     ^~~~~~~~~~~~~~~~~
..\..\include/wx/list.h:1100:5: note: in expansion of macro 'WX_DECLARE_LIST_2'
     WX_DECLARE_LIST_2(elementtype, listname, wx##listname##Node, class usergoo)
     ^~~~~~~~~~~~~~~~~
..\..\include/wx/module.h:21:1: note: in expansion of macro 'WX_DECLARE_USER_EXPORTED_LIST'
 WX_DECLARE_USER_EXPORTED_LIST(wxModule, wxModuleList, WXDLLIMPEXP_BASE);
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ..\..\include/wx/log.h:63,
                 from ..\..\include/wx/msw/private.h:18,
                 from ../../src/common/dynload.cpp:25:
..\..\include/wx/dynload.h: In member function 'void wxDLManifest_wxImplementation_HashTable::ResizeTable(size_t)':
..\..\include/wx/hashmap.h:402:40: warning: cast between incompatible function types from 'wxDLManifest_wxImplementation_HashTable::size_type (*)(wxDLManifest_wxImplementation_HashTable::Self*, wxDLManifest_wxImplementation_HashTable::Node*)' {aka 'long long unsigned int (*)(wxDLManifest_wxImplementation_HashTable*, wxDLManifest_wxImplementation_HashTable::Node*)'} to '_wxHashTableBase2::BucketFromNode' {aka 'long unsigned int (*)(_wxHashTableBase2*, _wxHashTable_NodeBase*)'} [-Wcast-function-type]
                        (BucketFromNode)GetBucketForNode,\
                                        ^~~~~~~~~~~~~~~~
..\..\include/wx/hashmap.h:402:40: note: in definition of macro '_WX_DECLARE_HASHTABLE'
                        (BucketFromNode)GetBucketForNode,\
                                        ^~~~~~~~~~~~~~~~
..\..\include/wx/hashmap.h:710:5: note: in expansion of macro '_WX_DECLARE_HASH_MAP'
     _WX_DECLARE_HASH_MAP( wxString, VALUE_T, wxStringHash, wxStringEqual, \
     ^~~~~~~~~~~~~~~~~~~~
..\..\include/wx/dynload.h:30:1: note: in expansion of macro 'WX_DECLARE_STRING_HASH_MAP_WITH_DECL'
 WX_DECLARE_STRING_HASH_MAP_WITH_DECL(wxPluginLibrary *, wxDLManifest,
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
..\..\include/wx/dynload.h: In member function 'void wxDLManifest_wxImplementation_HashTable::HashCopy(const Self&)':
..\..\include/wx/hashmap.h:414:40: warning: cast between incompatible function types from 'wxDLManifest_wxImplementation_HashTable::size_type (*)(wxDLManifest_wxImplementation_HashTable::Self*, wxDLManifest_wxImplementation_HashTable::Node*)' {aka 'long long unsigned int (*)(wxDLManifest_wxImplementation_HashTable*, wxDLManifest_wxImplementation_HashTable::Node*)'} to '_wxHashTableBase2::BucketFromNode' {aka 'long unsigned int (*)(_wxHashTableBase2*, _wxHashTable_NodeBase*)'} [-Wcast-function-type]
                        (BucketFromNode)GetBucketForNode, \
                                        ^~~~~~~~~~~~~~~~
..\..\include/wx/hashmap.h:414:40: note: in definition of macro '_WX_DECLARE_HASHTABLE'
                        (BucketFromNode)GetBucketForNode, \
                                        ^~~~~~~~~~~~~~~~
..\..\include/wx/hashmap.h:710:5: note: in expansion of macro '_WX_DECLARE_HASH_MAP'
     _WX_DECLARE_HASH_MAP( wxString, VALUE_T, wxStringHash, wxStringEqual, \
     ^~~~~~~~~~~~~~~~~~~~
..\..\include/wx/dynload.h:30:1: note: in expansion of macro 'WX_DECLARE_STRING_HASH_MAP_WITH_DECL'
 WX_DECLARE_STRING_HASH_MAP_WITH_DECL(wxPluginLibrary *, wxDLManifest,
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mingw32-make: *** [makefile.gcc:6663: gcc_mswudll64\monodll_dynload.o] Error 1
This is a 64-bit compiler. The previous MinGW-Builds 7.3.0, also 64-bit, compiles WxWidgets 3.1.1 correctly. Any suggestions I could try to fix this? Thank you in advance.

Re: MinGW-Builds 8.1.0 and WxWidgets 3.1.1 compile error

Posted: Sun May 27, 2018 6:44 pm
by doublemax
Pretty much every new MinGW version breaks wxWidgets compilation, so usually it's not the best idea to use the latest MinGW version.

Please open a ticket at http://trac.wxwidgets.org/

Re: MinGW-Builds 8.1.0 and WxWidgets 3.1.1 compile error

Posted: Sun May 27, 2018 7:04 pm
by headkase
doublemax wrote:Pretty much every new MinGW version breaks wxWidgets compilation, so usually it's not the best idea to use the latest MinGW version.

Please open a ticket at http://trac.wxwidgets.org/
I would open a ticket but the trac software doesn't want to send me a verify email. My email is in this format: [email protected]

Just to note, I also tried to build with the most current GIT of wxWidgets with the same results. Using "-fpermissive" also didn't massage it the right way.

Re: MinGW-Builds 8.1.0 and WxWidgets 3.1.1 compile error

Posted: Sun May 27, 2018 7:51 pm
by doublemax
In that case try posting on the wx-users group:
https://groups.google.com/forum/#!forum/wx-users

Re: MinGW-Builds 8.1.0 and WxWidgets 3.1.1 compile error

Posted: Sun May 27, 2018 8:16 pm
by headkase
doublemax wrote:In that case try posting on the wx-users group:
https://groups.google.com/forum/#!forum/wx-users
Posted here: https://mail.google.com/mail/u/0?ui=2&i ... 0458987007

Thanks.

Re: MinGW-Builds 8.1.0 and WxWidgets 3.1.1 compile error

Posted: Sun May 27, 2018 9:59 pm
by doublemax

Re: MinGW-Builds 8.1.0 and WxWidgets 3.1.1 compile error

Posted: Mon May 28, 2018 8:09 am
by headkase
Right on, thank you - that was a fast turn-around!

Re: MinGW-Builds 8.1.0 and WxWidgets 3.1.1 compile error

Posted: Thu Aug 08, 2019 8:45 pm
by gustxw
Hello is it true newer versions of mingw break wx widgets build i have been having this problem im using codeblocks 17.2 and mingw tho idk if the mingw being used is the codeblocks one cause ive noticed in some cases it finds the mingw i have installed in C:\ but regardless when i run

C:\Users\gustx\Desktop\wxWidgets-3.1.2\build\msw>mingw32-make -f makefile.gcc SHARED=0 UNICODE=1 MONOLITHIC=1 BUILD=release

i get

gcc -E "..\..\include\wx\msw\genrcdefs.h" > "..\..\lib\gcc_lib\mswu\wx\msw\rcdefs.h"
process_begin: CreateProcess(NULL, C:/Program Files (x86)/Common Files/Intel/Shared Libraries/redist/intel64/compiler/ -c "gcc -E \"..\..\include\wx\msw\genrcdefs.h\" > \"..\..\lib\gcc_lib\mswu\wx\msw\rcdefs.h\"", ...) failed.
make (e=2): The system cannot find the file specified.
mingw32-make: *** [makefile.gcc:5743: ..\..\lib\gcc_lib\mswu\wx\msw\rcdefs.h] Error 2

have i just hopelessly been trying to get this to work
what version of mingw can i download that will work and from what url?will i have to uninstall my current mingw?

Re: MinGW-Builds 8.1.0 and WxWidgets 3.1.1 compile error

Posted: Thu Aug 08, 2019 9:32 pm
by doublemax
I don't think this is a problem with the MinGW version. Open a console window and check the PATH variable. Maybe there are other compilers/toolchains installed.

Re: MinGW-Builds 8.1.0 and WxWidgets 3.1.1 compile error

Posted: Thu Aug 08, 2019 9:42 pm
by PB
In addition to scanning %PATH%, you can also use the where command in the console, e.g.

Code: Select all

where gcc.exe
Also, what is this path from your error listing?

Code: Select all

C:/Program Files (x86)/Common Files/Intel/Shared Libraries/redist/intel64/compiler/