The error shows up as:
-------------- Build: sdk in Code::Blocks wx2.9.x (compiler: GNU GCC Compiler)---------------
i686-w64-mingw32-g++.exe -Wall C:\CodeLib\CodeBlocks -pipe -mthreads -fmessage-length=0 -fexceptions -Winvalid-pch -ftrack-macro-expansion=0 -DHAVE_W32API_H -D__WXMSW__ -DWXUSINGDLL -DcbDEBUG -DCB_PRECOMP -DWX_PRECOMP -DwxUSE_UNICODE -Woverloaded-virtual -DEXPORT_LIB -DEXPORT_EVENTS -DWXMAKINGDLL_SCI -iquote.objs29\include -I.objs29\include -I. -IC:\CodeLib\wxWidgets-2.9.x\include -IC:\CodeLib\wxWidgets-2.9.x\lib\gcc_dll\mswu -Isdk\wxscintilla\include -Iinclude\tinyxml -Iinclude -Iinclude\tinyxml -Iinclude\scripting\bindings -Iinclude\scripting\include -Iinclude\scripting\sqplus -Iinclude\mozilla_chardet -Iinclude\mozilla_chardet\mfbt -Iinclude\mozilla_chardet\nsprpub\pr\include -Iinclude\mozilla_chardet\xpcom -Iinclude\mozilla_chardet\xpcom\base -Iinclude\mozilla_chardet\xpcom\glue -c C:\CodeLib\CodeBlocks\src\include\sdk_precomp.h -o .objs29\include\sdk_precomp.h.gch
In file included from C:/CodeLib/CodeBlocks/src/include/cbauibook.h:10:0,
from C:/CodeLib/CodeBlocks/src/include/sdk_common.h:125,
from C:\CodeLib\CodeBlocks\src\include\sdk_precomp.h:13:
C:/CodeLib/wxWidgets-2.9.x/include/wx/aui/auibook.h:349:18: warning: 'virtual bool wxAuiNotebook::AddPage(wxWindow*, const wxString&, bool, int)' was hidden [-Woverloaded-virtual]
virtual bool AddPage(wxWindow *page, const wxString &text, bool select,
^
In file included from C:/CodeLib/CodeBlocks/src/include/sdk_common.h:125:0,
from C:\CodeLib\CodeBlocks\src\include\sdk_precomp.h:13:
C:/CodeLib/CodeBlocks/src/include/cbauibook.h:132:14: warning: by 'bool cbAuiNotebook::AddPage(wxWindow*, const wxString&, bool, const wxBitmap&)' [-Woverloaded-virtual]
bool AddPage(wxWindow* page,
^
In file included from C:/CodeLib/CodeBlocks/src/include/cbauibook.h:10:0,
from C:/CodeLib/CodeBlocks/src/include/sdk_common.h:125,
from C:\CodeLib\CodeBlocks\src\include\sdk_precomp.h:13:
C:/CodeLib/wxWidgets-2.9.x/include/wx/aui/auibook.h:352:18: warning: 'virtual bool wxAuiNotebook::InsertPage(size_t, wxWindow*, const wxString&, bool, int)' was hidden [-Woverloaded-virtual]
virtual bool InsertPage(size_t index, wxWindow *page, const wxString &text,
^
In file included from C:/CodeLib/CodeBlocks/src/include/sdk_common.h:125:0,
from C:\CodeLib\CodeBlocks\src\include\sdk_precomp.h:13:
C:/CodeLib/CodeBlocks/src/include/cbauibook.h:147:14: warning: by 'bool cbAuiNotebook::InsertPage(size_t, wxWindow*, const wxString&, bool, const wxBitmap&)' [-Woverloaded-virtual]
bool InsertPage(size_t page_idx,
^
In file included from C:/CodeLib/CodeBlocks/src/include/sdk_common.h:136:0,
from C:\CodeLib\CodeBlocks\src\include\sdk_precomp.h:13:
C:/CodeLib/CodeBlocks/src/include/toolsmanager.h:46:32: error: 'ToolsList::Node' has not been declared
void DoRemoveTool(ToolsList::Node* node);
I'm using the mingw-4.8.1-win32-sjlj-rev2 (32-bit) compiler. I have successfully built wxWidgets-2.9.5+(trunk) with it with the following conditions:
WXVER_MINOR=9
WXVER_RELEASE=5
BUILD=release
MONOLITHIC=1
SHARED=1
UNICODE=1
TOOLKIT=MSW
TOOLKIT_VERSION=
WXUNIV=0
CFG=
VENDOR=custom
OFFICIAL_BUILD=0
DEBUG_FLAG=1
DEBUG_INFO=default
RUNTIME_LIBS=dynamic
MSLU=0
USE_EXCEPTIONS=1
USE_RTTI=1
USE_THREADS=1
USE_AUI=1
USE_GUI=1
USE_HTML=1
USE_MEDIA=1
USE_OPENGL=1
USE_QA=0
USE_PROPGRID=1
USE_RIBBON=1
USE_RICHTEXT=1
USE_STC=1
USE_WEBVIEW=1
USE_XRC=1
COMPILER=gcc
COMPILER_VERSION=
CC=gcc
CXX=g++
CFLAGS=
CPPFLAGS=
CXXFLAGS=
LDFLAGS=-s
I have seen other posts indicating that this may be related to wxSTL, but I did not build wx29 with STL enabled, and the setup_inc.h file indicates wxSTL = 0 (not enabled) also (by default).
I have been able to successfully build Code::Blocks with wxWidgets-2.8.12 using the same compiler, but I had hoped to use the "wx29" version. Any thoughts on how I may help troubleshoot this issue?
Quote from: zaleksf on July 28, 2013, 02:17:20 AM
I have seen other posts indicating that this may be related to wxSTL, but I did not build wx29 with STL enabled, and the setup_inc.h file indicates wxSTL = 0 (not enabled) also (by default).
What does "lib/gcc_dll/mswu/wx/setup.h" contain?
For the following options: I have stopped updating list for now.
WXWIN_COMPATIBILITY_2_8
wxUSE_STL
wxUSE_STD_CONTAINERS
Values from the wxWidgets 2.9.5 that I have just started building. Takes about 2 hours for me to build it. Re-started wxWidgets build at 10:30 PM ET because I was not building DLL version of wxWidgets.
#define WXWIN_COMPATIBILITY_2_8 1
#define wxUSE_STL 0
#define wxUSE_STD_CONTAINERS 0
Possibly important differences in build.cfg; note, I do NOT think these are the problem.
USE_QA=1
CXXFLAGS=-fno-keep-inline-dllexport
LDFLAGS=
Edit: I could NOT duplicate the problem. I suggest making sure you built wxWidgets with the same compiler you are using to build Code::Blocks.
Edit: All testing done on Windows 7 SP1 32bit using MinGW gcc shipped with CB 12.11.
Tim S.
Building Code::Blocks with wxWidgets v2.9.5 as written in the WiKi forks work me just fine on Windows. Neither compile errors, nor runtime errors are pointing to toolsmanager.
The only difference I see is that you are using a newer compiler: mingw-4.8.1-win32-sjlj-rev2. I am still using TDM v4.7.1.
If I manually set wxUSE_STD_CONTAINERS to 1; I can duplicate the issue.
(This was without rebuilding wxWidgets after doing the manual edit)
I am of the opinion that setting wxWidget's wxUSE_STD_CONTAINERS or wxUSE_STL to 1 does NOT currently work with Code::Blocks.
Note: I have NOT tested setting wxUSE_STL under 2.9; but, I believe it caused this issue with 2.8.
The wxUSE_STL was split into multiple settings in 2.9; one of which is wxUSE_STD_CONTAINERS.
Updated my old STL patch to fix a small part of this issue. http://developer.berlios.de/patch/?func=detailpatch&patch_id=2161&group_id=5358 (http://developer.berlios.de/patch/?func=detailpatch&patch_id=2161&group_id=5358)
Tim S.
Another patch related to this issue of using wxWidgets 2.9.5 and having wxUSE_STD_CONTAINERS = 1
Index: src/sdk/scripting/bindings/sc_wxtypes.cpp
===================================================================
--- src/sdk/scripting/bindings/sc_wxtypes.cpp (revision 9239)
+++ src/sdk/scripting/bindings/sc_wxtypes.cpp (working copy)
@@ -247,16 +247,37 @@
///////////////////
// wxArrayString //
///////////////////
+#if wxCHECK_VERSION(2, 9, 5)
+ #if wxUSE_STD_CONTAINERS
+ typedef void(wxArrayString::*WXAS_CLEAR)();
+ typedef size_t(wxArrayString::*WXAS_GETCOUNT)() const;
+ typedef wxString&(wxArrayString::*WXAS_ITEM)(size_t) const;
+ #else
+ typedef wxString&(wxArrayString::*WXAS_ITEM)(size_t);
+ #endif
+#endif
SqPlus::SQClassDef<wxArrayString>("wxArrayString").
emptyCtor().
func(&wxArrayString::Add, "Add").
+#if wxCHECK_VERSION(2, 9, 5) && wxUSE_STD_CONTAINERS
+ func<WXAS_CLEAR>(&wxArrayString::Clear, "Clear").
+#else
func(&wxArrayString::Clear, "Clear").
+#endif
// func(&wxArrayString::Index, "Index").
staticFuncVarArgs(&wxArrayString_Index, "Index", "*").
+#if wxCHECK_VERSION(2, 9, 5) && wxUSE_STD_CONTAINERS
+ func<WXAS_GETCOUNT>(&wxArrayString::GetCount, "GetCount")
+#else
func(&wxArrayString::GetCount, "GetCount")
+#endif
+#if wxCHECK_VERSION(2, 9, 5)
+ .func<WXAS_ITEM>(&wxArrayString::Item, "Item")
+#else
#if !wxCHECK_VERSION(2, 9, 0) // Strange that this does not work with wx 2.9.x?!
.func(&wxArrayString::Item, "Item")
#endif
+#endif
;
//////////////
From docs/doxygen/overviews/container.h
- wxSortedArrayString and wxArrayString are separate classes now and the
former doesn't derive from the latter. If you need to convert a sorted array
to a normal one, you must copy all the elements. Alternatively, you may
avoid the use of wxSortedArrayString by using a normal array and calling its
Sort() method when needed.
See simpler patch below
Tim S.
stahta01: Why don't you change the code to use wxArrayString in all versions of wx?
Quote from: oBFusCATed on July 30, 2013, 09:19:07 AM
stahta01: Why don't you change the code to use wxArrayString in all versions of wx?
Do you mean in the abbreviations plug-in patch?
If you think that is better, I will change it.
FYI: I am suffering from insomnia right now; so, I might make mistakes on doing the change likely wait a day or two.
Compiling the Contrib Plug-ins right now.
Tim S.
Quote from: stahta01 on July 30, 2013, 10:05:04 AM
Do you mean in the abbreviations plug-in patch?
Yes, there is no point in maintaining two versions, when one is sufficient.
Edit: Patch compiles; but, I have not done much testing because I have never used this plugin.
Index: src/plugins/abbreviations/abbreviationsconfigpanel.cpp
===================================================================
--- src/plugins/abbreviations/abbreviationsconfigpanel.cpp (revision 9239)
+++ src/plugins/abbreviations/abbreviationsconfigpanel.cpp (working copy)
@@ -208,12 +208,14 @@
{
m_LanguageCmb->Clear();
- wxSortedArrayString langs;
+ wxArrayString langs;
AutoCompLanguageMap::iterator it;
for (it = m_Plugin->m_AutoCompLanguageMap.begin(); it != m_Plugin->m_AutoCompLanguageMap.end(); ++it)
{
langs.Add(it->first);
}
+ langs.Sort();
+
m_LanguageCmb->Append(langs);
}
@@ -265,7 +267,7 @@
else
colSet = new EditorColourSet();
- wxSortedArrayString newLangs;
+ wxArrayString newLangs;
wxArrayString langs = colSet->GetAllHighlightLanguages();
for (unsigned int i = 0; i < langs.GetCount(); ++i)
{
@@ -273,6 +275,7 @@
!langs[i].IsSameAs(_T("Fortran77")))
newLangs.Add(langs[i]);
}
+ newLangs.Sort();
int sel = wxGetSingleChoiceIndex(_("Select language:"), _("Languages"), newLangs, this);
if (sel == -1)
And have you tried if the abbreviations still work with this change?
Quote from: oBFusCATed on July 30, 2013, 01:34:10 PM
And have you tried if the abbreviations still work with this change?
No, I have not tested whether the plugin still works; did check to verify it compiles and links.
I was trying to get wxSmith Lib to compile; finally decided it is way beyond my knowledge of C++ to get it to compile.
Tim S.