Code: Select all
In file included from ../../src/xrc/xmlreshandler.cpp:18:
In file included from ..\..\include\wx/xrc/xmlreshandler.h:22:
In file included from ..\..\include\wx/window.h:18:
..\..\include\wx/event.h:3750:35: warning: 'wxObjectEventFunctor::operator()' redeclared inline; 'dllimport' attribute ignored [-Wignored-attributes]
inline void wxObjectEventFunctor::operator()(wxEvtHandler *handler, wxEvent& event)
and then linker undefined reference errors like:
Code: Select all
clang_mswuddll-forest\coredll_appcmn.o:(.rdata[_ZTV12wxAppConsole]+0x1e0): undefined reference to `non-virtual thunk to wxAppConsoleBase::FilterEvent(wxEvent&)'
In case of monolithic build I had warnings in compilation stage only in file src/common/glcmn.cpp, so I had builded a library with command like:
Code: Select all
mingw32-make.exe -f makefile.gcc MONOLITHIC=1 SHARED=1 BUILD=debug USE_OPENGL=0 CFLAGS=" -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-unused-command-line-argument " CXXFLAGS=" -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-unused-command-line-argument -fexceptions -fasynchronous-unwind-tables -fnon-call-exceptions -std=gnu++11 -pthread " LDFLAGS=" -Wno-unused-command-line-argument -fexceptions -fasynchronous-unwind-tables -fnon-call-exceptions -pthread -Wl,--allow-multiple-definition " CC="clang -target x86_64-w64-windows-gnu" CXX="clang++ -target x86_64-w64-windows-gnu"
I had patched only two files while building wxWidgets 3.1.0 vesrion to avoid errors: include/wx/msw/private.h and src/msw/mediactrl_am.cpp
In src/msw/mediactrl_am.cpp I had changed the constant in case:
Code: Select all
case -609: // readystatechange in IActiveMovie2 and IMediaPlayer
and in include/wx/msw/private.h I changed lines with errors:
Code: Select all
// close the handle in the class dtor
//template <wxUIntPtr INVALID_VALUE = (wxUIntPtr)INVALID_HANDLE_VALUE>
template <wxUIntPtr INVALID_VALUE = (wxUIntPtr)-1>
class AutoHANDLE
and:
Code: Select all
static HANDLE InvalidHandle()
{
//return static_cast<HANDLE>(INVALID_VALUE);
return reinterpret_cast<HANDLE>(INVALID_VALUE);
}
For wxWidgets 3.0.3 I've patched mediactrl_am.cpp and also used the patch https://github.com/wxWidgets/wxWidgets/ ... 11237e38f6
It is very difficult to me to install tools like MSYS2 on my job, so I would like to avoid using configure.
Is there way to repair wxWidgets dlls building with clang in my case?