Уже неделю парюсь, хочу настроить Code::Blocks на кросс-компиляцию под Windows с помощью wxWidgets и mingw32. Сегодня методом тыка удалось установить wxWidgets 3.0.0 из исходников и настроить mingw-профиль в codeblocks. Но компилировалось почему-то только под этим профилем, а обычный проект wxWidgets выбивал wx/wxprec.h: No such file or directory. Затем я додумался поставить поверх wxWidgets 3 более старую версию из репозиториев (libwxbase2.8-dev и libwxgtk2.8), после чего все стало как было - под линукс компилируется нормально, а профиль mingw уже не работает:
-------------- Build: Debug in mingwTest (compiler: MinGW Compiler)---------------
i586-mingw32msvc-g++ -I/usr/lib/i386-linux-gnu/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread -Wall -g -I/usr/local/i586-mingw32/lib/wx/include/i586-mingw32msvc-msw-unicode-static-3.0 -I/usr/local/i586-mingw32/include/wx-3.0 -D_LARGEFILE_SOURCE=unknown -D__WXMSW__ -mthreads -I/usr/i586-mingw32msvc/include/ -c /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp -o obj/Debug/mingwTestApp.o
i586-mingw32msvc-g++: unrecognized option '-pthread'
In file included from /usr/include/wx-2.8/wx/platform.h:293,
from /usr/include/wx-2.8/wx/defs.h:21,
from /usr/include/wx-2.8/wx/event.h:15,
from /usr/include/wx-2.8/wx/app.h:20,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.h:13,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:10:
/usr/include/wx-2.8/wx/chkconf.h:1817:9: error: #error "wxClipboard requires wxDataObject"
In file included from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestMain.h:16,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:13:
/usr/include/wx-2.8/wx/statusbr.h:159:33: error: wx/msw/statbr95.h: No such file or directory
In file included from /usr/include/wx-2.8/wx/event.h:15,
from /usr/include/wx-2.8/wx/app.h:20,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.h:13,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:10:
/usr/include/wx-2.8/wx/defs.h:2825: error: conflicting declaration ‘typedef struct GtkWidget* WXWidget’
/usr/include/wx-2.8/wx/defs.h:2616: error: ‘WXWidget’ has a previous declaration as ‘typedef void* WXWidget’
In file included from /usr/include/wx-2.8/wx/cursor.h:20,
from /usr/include/wx-2.8/wx/event.h:22,
from /usr/include/wx-2.8/wx/app.h:20,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.h:13,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:10:
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/cursor.h:26: error: ‘wxCURSOR_DEFAULT_TYPE’ was not declared in this scope
In file included from /usr/include/wx-2.8/wx/utils.h:21,
from /usr/include/wx-2.8/wx/cursor.h:41,
from /usr/include/wx-2.8/wx/event.h:22,
from /usr/include/wx-2.8/wx/app.h:20,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.h:13,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:10:
/usr/include/wx-2.8/wx/filefn.h:414: error: zero width for bit-field ‘wxAssert_415::BadFileSizeType’
In file included from /usr/include/wx-2.8/wx/app.h:20,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.h:13,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:10:
/usr/include/wx-2.8/wx/event.h: In member function ‘bool wxSetCursorEvent::HasCursor() const’:
/usr/include/wx-2.8/wx/event.h:915: error: ‘const class wxCursor’ has no member named ‘Ok’
In file included from /usr/include/wx-2.8/wx/icon.h:20,
from /usr/local/i586-mingw32/include/wx-3.0/wx/msw/app.h:15,
from /usr/include/wx-2.8/wx/app.h:562,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.h:13,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:10:
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/icon.h: At global scope:
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/icon.h:56: error: ‘wxICON_DEFAULT_TYPE’ was not declared in this scope
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/icon.h:64: error: ‘wxICON_DEFAULT_TYPE’ was not declared in this scope
In file included from /usr/include/wx-2.8/wx/app.h:562,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.h:13,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:10:
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/app.h:104: error: ISO C++ forbids declaration of ‘wxDECLARE_NO_COPY_CLASS’ with no type
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/app.h:104: error: cannot declare parameter ‘<anonymous>’ to be of abstract type ‘wxApp’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/app.h:26: note: because the following virtual functions are pure within ‘wxApp’:
/usr/include/wx-2.8/wx/app.h:406: note: virtual bool wxAppBase::Yield(bool)
In file included from /usr/include/wx-2.8/wx/font.h:229,
from /usr/include/wx-2.8/wx/window.h:24,
from /usr/include/wx-2.8/wx/menu.h:24,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestMain.h:14,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:13:
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/font.h:26: error: expected ‘,’ or ‘...’ before ‘&’ token
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/font.h:26: error: ISO C++ forbids declaration of ‘wxFontInfo’ with no type
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/font.h:136: error: ISO C++ forbids declaration of ‘wxDECLARE_COMMON_FONT_METHODS’ with no type
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/font.h:118: error: conflicting return type specified for ‘virtual wxFontStyle wxFont::GetStyle() const’
/usr/include/wx-2.8/wx/font.h:171: error: overriding ‘virtual int wxFontBase::GetStyle() const’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/font.h:119: error: conflicting return type specified for ‘virtual wxFontWeight wxFont::GetWeight() const’
/usr/include/wx-2.8/wx/font.h:172: error: overriding ‘virtual int wxFontBase::GetWeight() const’
/usr/include/wx-2.8/wx/gdicmn.h:716: error: cannot declare variable ‘wxNullFont’ to be of abstract type ‘wxFont’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/font.h:21: note: because the following virtual functions are pure within ‘wxFont’:
/usr/include/wx-2.8/wx/font.h:170: note: virtual int wxFontBase::GetFamily() const
/usr/include/wx-2.8/wx/font.h:186: note: virtual void wxFontBase::SetFamily(int)
/usr/include/wx-2.8/wx/font.h:187: note: virtual void wxFontBase::SetStyle(int)
/usr/include/wx-2.8/wx/font.h:188: note: virtual void wxFontBase::SetWeight(int)
In file included from /usr/include/wx-2.8/wx/region.h:222,
from /usr/include/wx-2.8/wx/window.h:26,
from /usr/include/wx-2.8/wx/menu.h:24,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestMain.h:14,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:13:
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/region.h:22: error: ‘wxPolygonFillMode’ has not been declared
In file included from /usr/include/wx-2.8/wx/palette.h:36,
from /usr/include/wx-2.8/wx/window.h:33,
from /usr/include/wx-2.8/wx/menu.h:24,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestMain.h:14,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:13:
/usr/include/wx-2.8/wx/gdicmn.h:715: error: cannot declare variable ‘wxNullPalette’ to be of abstract type ‘wxPalette’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/palette.h:17: note: because the following virtual functions are pure within ‘wxPalette’:
/usr/include/wx-2.8/wx/palette.h:29: note: virtual bool wxPaletteBase::IsOk() const
In file included from /usr/include/wx-2.8/wx/menu.h:24,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestMain.h:14,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:13:
/usr/include/wx-2.8/wx/window.h:82: error: cannot declare field ‘wxVisualAttributes::font’ to be of abstract type ‘wxFont’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/font.h:21: note: since type ‘wxFont’ has pure virtual functions
/usr/include/wx-2.8/wx/window.h:845: error: invalid abstract return type for member function ‘wxFont wxWindowBase::GetFont() const’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/font.h:21: note: since type ‘wxFont’ has pure virtual functions
/usr/include/wx-2.8/wx/window.h:1142: error: invalid abstract return type for member function ‘wxPalette wxWindowBase::GetPalette() const’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/palette.h:17: note: since type ‘wxPalette’ has pure virtual functions
/usr/include/wx-2.8/wx/window.h:1231: error: cannot declare field ‘wxWindowBase::m_font’ to be of abstract type ‘wxFont’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/font.h:21: note: since type ‘wxFont’ has pure virtual functions
/usr/include/wx-2.8/wx/window.h:1293: error: cannot declare field ‘wxWindowBase::m_palette’ to be of abstract type ‘wxPalette’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/palette.h:17: note: since type ‘wxPalette’ has pure virtual functions
/usr/include/wx-2.8/wx/window.h: In member function ‘wxPalette wxWindowBase::GetPalette() const’:
/usr/include/wx-2.8/wx/window.h:1142: error: invalid abstract return type for member function ‘wxPalette wxWindowBase::GetPalette() const’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/palette.h:17: note: since type ‘wxPalette’ has pure virtual functions
/usr/include/wx-2.8/wx/window.h:1142: error: cannot allocate an object of abstract type ‘wxPalette’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/palette.h:17: note: since type ‘wxPalette’ has pure virtual functions
In file included from /usr/local/i586-mingw32/include/wx-3.0/wx/msw/window.h:15,
from /usr/include/wx-2.8/wx/window.h:1477,
from /usr/include/wx-2.8/wx/menu.h:24,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestMain.h:14,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:13:
/usr/include/wx-2.8/wx/settings.h: At global scope:
/usr/include/wx-2.8/wx/settings.h:170: error: invalid abstract return type for function ‘static wxFont wxSystemSettingsNative::GetFont(wxSystemFont)’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/font.h:21: note: since type ‘wxFont’ has pure virtual functions
In file included from /usr/include/wx-2.8/wx/window.h:1477,
from /usr/include/wx-2.8/wx/menu.h:24,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestMain.h:14,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:13:
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/window.h:73: error: ‘wxShowEffect’ has not been declared
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/window.h:78: error: ‘wxShowEffect’ has not been declared
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/window.h:350: error: ‘wxMouseWheelAxis’ has not been declared
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/window.h:515: error: ‘wxShowEffect’ has not been declared
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/window.h:710: error: ISO C++ forbids declaration of ‘wxDECLARE_NO_COPY_CLASS’ with no type
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/window.h:710: error: cannot declare parameter ‘<anonymous>’ to be of abstract type ‘wxWindow’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/window.h:32: note: because the following virtual functions are pure within ‘wxWindow’:
/usr/include/wx-2.8/wx/window.h:870: note: virtual void wxWindowBase::GetTextExtent(const wxString&, int*, int*, int*, int*, const wxFont*) const
In file included from /usr/include/wx-2.8/wx/bitmap.h:209,
from /usr/include/wx-2.8/wx/ownerdrw.h:19,
from /usr/local/i586-mingw32/include/wx-3.0/wx/msw/menuitem.h:19,
from /usr/include/wx-2.8/wx/menuitem.h:184,
from /usr/include/wx-2.8/wx/menu.h:28,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestMain.h:14,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:13:
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/bitmap.h:48: error: expected class-name before ‘{’ token
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/bitmap.h:66: error: ‘wxBITMAP_DEFAULT_TYPE’ was not declared in this scope
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/bitmap.h:141: error: ‘wxBITMAP_SCREEN_DEPTH’ was not declared in this scope
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/bitmap.h:142: error: ‘wxBITMAP_SCREEN_DEPTH’ was not declared in this scope
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/bitmap.h:150: error: ‘wxBITMAP_DEFAULT_TYPE’ was not declared in this scope
In file included from /usr/local/i586-mingw32/include/wx-3.0/wx/msw/menuitem.h:19,
from /usr/include/wx-2.8/wx/menuitem.h:184,
from /usr/include/wx-2.8/wx/menu.h:28,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestMain.h:14,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:13:
/usr/include/wx-2.8/wx/ownerdrw.h:145: error: invalid abstract return type for member function ‘wxFont wxOwnerDrawn::GetFontToUse() const’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/font.h:21: note: since type ‘wxFont’ has pure virtual functions
/usr/include/wx-2.8/wx/ownerdrw.h:169: error: cannot declare field ‘wxOwnerDrawn::m_font’ to be of abstract type ‘wxFont’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/font.h:21: note: since type ‘wxFont’ has pure virtual functions
In file included from /usr/include/wx-2.8/wx/toplevel.h:317,
from /usr/include/wx-2.8/wx/frame.h:19,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestMain.h:15,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:13:
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/toplevel.h:259: error: ISO C++ forbids declaration of ‘wxDECLARE_NO_COPY_CLASS’ with no type
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/toplevel.h:259: error: cannot declare parameter ‘<anonymous>’ to be of abstract type ‘wxTopLevelWindowMSW’
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/toplevel.h:19: note: because the following virtual functions are pure within ‘wxTopLevelWindowMSW’:
/usr/include/wx-2.8/wx/window.h:870: note: virtual void wxWindowBase::GetTextExtent(const wxString&, int*, int*, int*, int*, const wxFont*) const
In file included from /usr/include/wx-2.8/wx/frame.h:245,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestMain.h:15,
from /home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:13:
/usr/local/i586-mingw32/include/wx-3.0/wx/msw/frame.h:61: error: ‘wxSTB_DEFAULT_STYLE’ was not declared in this scope
/home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp: In function ‘wxAppConsole* wxCreateApp()’:
/home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:17: error: cannot allocate an object of abstract type ‘mingwTestApp’
/home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.h:16: note: because the following virtual functions are pure within ‘mingwTestApp’:
/usr/include/wx-2.8/wx/app.h:406: note: virtual bool wxAppBase::Yield(bool)
/home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp: In member function ‘virtual bool mingwTestApp::OnInit()’:
/home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestApp.cpp:26: error: cannot allocate an object of abstract type ‘mingwTestFrame’
/home/sooqua/Documents/CodeBlocks/mingwTest/mingwTestMain.h:20: note: because the following virtual functions are pure within ‘mingwTestFrame’:
/usr/include/wx-2.8/wx/window.h:870: note: virtual void wxWindowBase::GetTextExtent(const wxString&, int*, int*, int*, int*, const wxFont*) const
Process terminated with status 1 (0 minutes, 2 seconds)
47 errors, 0 warnings (0 minutes, 2 seconds)
Помогите пожалуйста...