I ve got a new computer and want to move my c++ Projects to it. I downloaded the latest versions of MinGW, CMake, QtCreator and wxWidgets(3.1).
I compiled the wxWidgets libraries (had some issues with disappearing letters in the linked object files but in the end, I could build everything).
Afterwards I tried to build my projects. Everything is fine until the linker want's to link the wxWidgets libraries. Here are the first lines of the error message:
Code: Select all
CMakeFiles\MinimumGUI.dir/objects.a(main.cpp.obj): In function `Z11wxCreateAppv':
D:/cpp/genesis/code/src/MinimumGUI/main.cpp:8: undefined reference to `operator new(unsigned int)'
D:/cpp/genesis/code/src/MinimumGUI/main.cpp:8: undefined reference to `operator delete(void*, unsigned int)'
CMakeFiles\MinimumGUI.dir/objects.a(main.cpp.obj): In function `ZN20wxObjectEventFunctorD0Ev':
D:/cpp/SDK/wxWidgets/include/wx/event.h:195: undefined reference to `operator delete(void*, unsigned int)'
CMakeFiles\MinimumGUI.dir/objects.a(main.cpp.obj): In function `ZN20wxThreadHelperThreadD0Ev':
D:/cpp/SDK/wxWidgets/include/wx/thread.h:655: undefined reference to `operator delete(void*, unsigned int)'
CMakeFiles\MinimumGUI.dir/objects.a(main.cpp.obj):main.cpp:(.rdata$_ZTI20wxObjectEventFunctor[__ZTI20wxObjectEventFunctor]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
CMakeFiles\MinimumGUI.dir/objects.a(main.cpp.obj):main.cpp:(.rdata$_ZTI14wxEventFunctor[__ZTI14wxEventFunctor]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
CMakeFiles\MinimumGUI.dir/objects.a(main.cpp.obj):main.cpp:(.rdata$_ZTI20wxThreadHelperThread[__ZTI20wxThreadHelperThread]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
CMakeFiles\MinimumGUI.dir/objects.a(main.cpp.obj):main.cpp:(.rdata$_ZTI8wxThread[__ZTI8wxThread]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
CMakeFiles\MinimumGUI.dir/objects.a(main.cpp.obj):main.cpp:(.eh_frame$_ZN23wxCriticalSectionLockerD1Ev+0x13): undefined reference to `__gxx_personality_v0'
CMakeFiles\MinimumGUI.dir/objects.a(main.cpp.obj):main.cpp:(.eh_frame+0x6b): undefined reference to `__gxx_personality_v0'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN16wxAppConsoleBaseD0Ev':
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:200: undefined reference to `operator delete(void*)'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN16wxAppConsoleBase12CreateTraitsEv':
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:337: undefined reference to `operator new(unsigned int)'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN16wxAppConsoleBase14GetValidTraitsEv':
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:363: undefined reference to `__cxa_guard_acquire'
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:363: undefined reference to `__cxa_guard_release'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN16wxAppConsoleBase20OnUnhandledExceptionEv':
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:682: undefined reference to `__cxa_rethrow'
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:691: undefined reference to `__cxa_begin_catch'
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:691: undefined reference to `__cxa_end_catch'
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:691: undefined reference to `__cxa_end_catch'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN16wxAppConsoleBase21OnExceptionInMainLoopEv':
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:708: undefined reference to `__cxa_rethrow'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN16wxAppConsoleBase21StoreCurrentExceptionEv':
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:725: undefined reference to `std::current_exception()'
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:725: undefined reference to `std::__exception_ptr::exception_ptr::~exception_ptr()'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN16wxAppConsoleBase22RethrowStoredExceptionEv':
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:734: undefined reference to `std::__exception_ptr::exception_ptr::exception_ptr()'
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:737: undefined reference to `std::__exception_ptr::exception_ptr::exception_ptr(std::__exception_ptr::exception_ptr const&)'
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:737: undefined reference to `std::rethrow_exception(std::__exception_ptr::exception_ptr)'
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:737: undefined reference to `std::__exception_ptr::exception_ptr::~exception_ptr()'
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:734: undefined reference to `std::__exception_ptr::exception_ptr::~exception_ptr()'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN22wxConsoleAppTraitsBase15CreateLogTargetEv':
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:910: undefined reference to `operator new(unsigned int)'
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:910: undefined reference to `operator delete(void*)'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN22wxConsoleAppTraitsBase19CreateMessageOutputEv':
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:917: undefined reference to `operator new(unsigned int)'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN22wxConsoleAppTraitsBase16CreateFontMapperEv':
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:924: undefined reference to `operator new(unsigned int)'
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:924: undefined reference to `operator delete(void*)'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `_tcf_2':
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:712: undefined reference to `std::__exception_ptr::exception_ptr::~exception_ptr()'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `_static_initialization_and_destruction_0':
D:\cpp\wxWidgets\build\msw/../../src/common/appbase.cpp:712: undefined reference to `std::__exception_ptr::exception_ptr::exception_ptr()'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZNSt15__exception_ptr13exception_ptraSEOS0_':
C:/Program Files (x86)/mingw-w64/i686-6.2.0-posix-dwarf-rt_v5-rev0/mingw32/lib/gcc/i686-w64-mingw32/6.2.0/include/c++/bits/exception_ptr.h:120: undefined reference to `std::__exception_ptr::exception_ptr::swap(std::__exception_ptr::exception_ptr&)'
C:/Program Files (x86)/mingw-w64/i686-6.2.0-posix-dwarf-rt_v5-rev0/mingw32/lib/gcc/i686-w64-mingw32/6.2.0/include/c++/bits/exception_ptr.h:120: undefined reference to `std::__exception_ptr::exception_ptr::~exception_ptr()'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN8wxStringD1Ev':
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:280: undefined reference to `std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::~basic_string()'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN8wxStringC1Ev':
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1101: undefined reference to `std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string()'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN8wxStringC1ERKS_':
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1104: undefined reference to `std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&)'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN8wxStringC1EPKc':
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1126: undefined reference to `std::allocator<wchar_t>::allocator()'
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1126: undefined reference to `std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string(wchar_t const*, std::allocator<wchar_t> const&)'
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1126: undefined reference to `std::allocator<wchar_t>::~allocator()'
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1126: undefined reference to `std::allocator<wchar_t>::~allocator()'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN8wxStringC1EPKw':
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1152: undefined reference to `std::allocator<wchar_t>::allocator()'
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1152: undefined reference to `std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string(wchar_t const*, std::allocator<wchar_t> const&)'
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1152: undefined reference to `std::allocator<wchar_t>::~allocator()'
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1152: undefined reference to `std::allocator<wchar_t>::~allocator()'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN8wxStringC1ERK10wxCStrData':
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1169: undefined reference to `std::allocator<wchar_t>::allocator()'
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1169: undefined reference to `std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::c_str() const'
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1169: undefined reference to `std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string(wchar_t const*, std::allocator<wchar_t> const&)'
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1169: undefined reference to `std::allocator<wchar_t>::~allocator()'
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1169: undefined reference to `std::allocator<wchar_t>::~allocator()'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZNK8wxString5emptyEv':
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1328: undefined reference to `std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::empty() const'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZN8wxString7reserveEj':
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1332: undefined reference to `std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::reserve(unsigned int)'
D:/cpp/SDK/wxWidgets/lib/gcc_lib_mono\libwxmsw31ud.a(monolib_appbase.o): In function `ZNK8wxString6wx_strEv':
D:\cpp\wxWidgets\build\msw/../../include/wx/string.h:1521: undefined reference to `std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::c_str() const'
I have read, that it might have something to do with the linking order and tried some suggestions from stackoverflow and other Forums, but nothing worked so far. My current linking order is:
Code: Select all
libwxbase31ud_net.a
libwxmsw31ud_gl.a
libwxmsw31ud_adv.a
libwxjpegd.a
libwxpngd.a
libwxzlibd.a
libwxexpatd.a
libwxmsw31ud_propgrid.a
libwxmsw31ud_ribbon.a
libwxmsw31ud_richtext.a
libwxmsw31ud_stc.a
libwxmsw31ud_webview.a
libwxmsw31ud_xrc.a
libwxregexud.a
libwxscintillad.a
libwxtiffd.a
libwxbase31ud_xml.a
libwxmsw31ud_aui.a
libwxmsw31ud_media.a
libwxmsw31ud_html.a
libwxbase31ud.a
libwxmsw31ud_core.a
opengl32.lib
glu32.lib
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
odbc32.lib
odbccp32.lib
winmm.lib
comctl32.lib
rpcrt4.lib
wsock32.lib
Here is the command I used to build the libraries:
Code: Select all
mingw32-make SHELL=CMD.exe -j8 -f makefile.gcc CXXFLAGS="-std=gnu++11" BUILD=debug UNICODE=1 SHARED=0 USE_OPENGL=1