sdk/scripting/sqplus/SqPlusConst.h:281: instantiated from 'int SqPlus::Call(Callee&, RT (Callee::*)()const, SQVM*, int) [with Callee = CompileOptionsBase, RT = const wxArrayString&]'
sdk/scripting/sqplus/sqplus.h:1315: instantiated from 'static SQInteger SqPlus::DirectCallInstanceMemberFunction<Callee, Func>::Dispatch(SQVM*) [with Callee = CompileOptionsBase, Func = const wxArrayString& (CompileOptionsBase::*)()const]'
sdk/scripting/sqplus/sqplus.h:1383: instantiated from 'void SqPlus::sq_pushdirectinstanceclosure(SQVM*, const Callee&, Func, SQUnsignedInteger) [with Callee = CompileOptionsBase, Func = const wxArrayString& (CompileOptionsBase::*)()const]'
sdk/scripting/sqplus/sqplus.h:1467: instantiated from 'void SqPlus::RegisterInstance(SQVM*, HSQOBJECT, Callee&, Func, const SQChar*) [with Callee = CompileOptionsBase, Func = const wxArrayString& (CompileOptionsBase::*)()const]'
sdk/scripting/sqplus/sqplus.h:1817: instantiated from 'SqPlus::SQClassDef<TClassType>& SqPlus::SQClassDef<TClassType>::func(Func, const SQChar*) [with Func = const wxArrayString& (CompileOptionsBase::*)()const, TClassType = CompileOptionsBase]'
sdk\scripting\bindings\scriptbindings.cpp:337: instantiated from here
sdk/scripting/sqplus/SqPlusConst.h:46: error: no matching function for call to 'Push(SQVM*&, const wxArrayString&)'
sdk/scripting/sqplus/sqplus.h:595: note: candidates are: void SqPlus::Push(SQVM*, char)
sdk/scripting/sqplus/sqplus.h:596: note: void SqPlus::Push(SQVM*, unsigned char)
sdk/scripting/sqplus/sqplus.h:597: note: void SqPlus::Push(SQVM*, short int)
sdk/scripting/sqplus/sqplus.h:598: note: void SqPlus::Push(SQVM*, short unsigned int)
sdk/scripting/sqplus/sqplus.h:599: note: void SqPlus::Push(SQVM*, int)
sdk/scripting/sqplus/sqplus.h:600: note: void SqPlus::Push(SQVM*, unsigned int)
sdk/scripting/sqplus/sqplus.h:601: note: void SqPlus::Push(SQVM*, long int)
sdk/scripting/sqplus/sqplus.h:602: note: void SqPlus::Push(SQVM*, long unsigned int)
sdk/scripting/sqplus/sqplus.h:603: note: void SqPlus::Push(SQVM*, double)
sdk/scripting/sqplus/sqplus.h:604: note: void SqPlus::Push(SQVM*, float)
sdk/scripting/sqplus/sqplus.h:605: note: void SqPlus::Push(SQVM*, const SQChar*)
sdk/scripting/sqplus/sqplus.h:606: note: void SqPlus::Push(SQVM*, const SqPlus::SquirrelNull&)
sdk/scripting/sqplus/sqplus.h:607: note: void SqPlus::Push(SQVM*, SQInteger (*)(SQVM*))
sdk/scripting/sqplus/sqplus.h:608: note: void SqPlus::Push(SQVM*, SqPlus::SQAnything*)
sdk/scripting/sqplus/sqplus.h:609: note: void SqPlus::Push(SQVM*, SquirrelObject&)
sdk/scripting/sqplus/sqplus.h:618: note: void SqPlus::Push(SQVM*, bool)
sdk/scripting/sqplus/sqplus.h:619: note: void SqPlus::Push(SQVM*, const void*)
sdk/scripting/sqplus/sqplus.h:620: note: void SqPlus::Push(SQVM*, void* const&)
I still don't know. Works fine here.
Maybe it's the compiler's version? I 'm using 4.0.3 and I see Michael is using 4.1.1...
Does not squirrel support GCC 4.1.1? If so, GCC compiler > 4.0.x could not be used to build C::B.
First, I use 4.0.3 and it builds just fine.
Second, the error is not in Squirrel but in a template of SqPlus (the library we use to bind Squirrel).
I have to test it with gcc 4.1.x...
I need someone who has this problem to try the following:revision 2698, has this already. But it still does not compile, same error about cannot find a matching function call
Insert #include <wx/arrstr.h> at the top of src/sdk/scripting/bindings/sc_base_types.h (just below #include <wx/string.h>).
Does this fix it?
I need someone who has this problem to try the following:revision 2698, has this already. But it still does not compile, same error about cannot find a matching function call
Insert #include <wx/arrstr.h> at the top of src/sdk/scripting/bindings/sc_base_types.h (just below #include <wx/string.h>).
Does this fix it?
to 'Push(SQVM*&, const wxArrayString&)'
Fedora Core 5, gcc 4.1.1
Same here, using GCC 4.1.1 on XP.
The error message, at least, seems fairly straightforward. CompileOptionsBase::GetLinkerOptions returns type wxArrayString, for which there is no function to directly push it on the stack. I don't pretend to understand the SqPlus sources very well, but it seems that the ReturnSpecialization class handles calling the various types of functions, and if there is no specialization for wxArrayString than the compiler would choose the function in SqPlusConst.h that is throwing the error.
I can't see how GCC 3.4.5 would compile it, but 4.1.1 not; so I'm probably missing something important.
Same here, using GCC 4.1.1 on XP.
The error message, at least, seems fairly straightforward. CompileOptionsBase::GetLinkerOptions returns type wxArrayString, for which there is no function to directly push it on the stack. I don't pretend to understand the SqPlus sources very well, but it seems that the ReturnSpecialization class handles calling the various types of functions, and if there is no specialization for wxArrayString than the compiler would choose the function in SqPlusConst.h that is throwing the error.
I can't see how GCC 3.4.5 would compile it, but 4.1.1 not; so I'm probably missing something important.
If you look in sc_base_types.h (which by the way is included by all other files in that dir), you will see that all bound types (including wxArrayString) are registered using the DECLARE_INSTANCE_TYPE macro.
This macro resolves to DECLARE_INSTANCE_TYPE_NAME_ which is defined in ../sqplus/sqplus.h at line 561 (and in ../sqplus/SqPlusConst.h at line 26).
These macros contain all the specializations for the registered type so it can be passed as argument or used as a return value.
So, obviously, wxArrayString's specializations are indeed defined. You can take it from here and check why it breaks. I (and many others) will happily wait for your investigation results :)
no solution, been out of country for 2 days, just confirming I have this also, from the first revision with squirrel and still in today's revision. Suse Linux 10.1 (64bit) GCC 4.1.0
Just did a quick reading of the responses can we add both definitions for the pointer based and reference based (or even pointer reference based) ???
I hope this is fixed soon, otherwise I can't debug :-( (since GDB on winXP64-bit crashes and now I can't build on linux ...)
It seems that when templates are instantiated the definition of Push(SQVM *, wxArrayString *) is not yet known, even it should.....
class SQVM;
namespace SqPlus { void Push(SQVM*, const wxArrayString&); }
class SQVM;allowed me to build :-)
namespace SqPlus { void Push(SQVM*, const wxArrayString&); }
SquirrelFunction<> call failed
AN ERROR HAS OCCURED [arith op + on between 'userdata' and 'userdata']
CALLSTACK
*FUNCTION [RegisterWizard()] /usr/local/share/codeblocks/templates/wizard/config.script line [51]
*FUNCTION [RegisterWizards()] /usr/local/share/codeblocks/templates/wizard/config.script line [11]
LOCALS
[category] USERPOINTER
[title] USERPOINTER
[folder] USERPOINTER
[type] 0
[this] TABLE
[this] TABLE
GetInstance: Invalid argument type
............
clicking on OK; leads the to the next error message :QuoteGetInstance: Invalid argument type
clickin on OK --> finally in CB :-)
INCLUDES = $(WX_CXXFLAGS) \My system is Debian Sid, and use dpkg-buildpackage to build a deb
-I$(top_srcdir)/src/sdk \
-I$(top_srcdir)/src/sdk/wxscintilla/include \
-I$(top_srcdir)/src/plugins/compilergcc/depslib/src \
-I$(top_srcdir)/src/sdk/scripting/include \
-I$(top_srcdir)/src/sdk/scripting/sqplus
Hi,
is there a fix for the problem that solves it without any errors?
cu
I 'm currently installing SuSE 10.1 to see the problem myself (and attempt to fix it).
In C::B rev2745, I must add this two red lines to src/plugins/compilergcc/Makefile for buildingI already checked for the last line : this is needed, strange nobody else suffers from this ????QuoteINCLUDES = $(WX_CXXFLAGS) \My system is Debian Sid, and use dpkg-buildpackage to build a deb
-I$(top_srcdir)/src/sdk \
-I$(top_srcdir)/src/sdk/wxscintilla/include \
-I$(top_srcdir)/src/plugins/compilergcc/depslib/src \
-I$(top_srcdir)/src/sdk/scripting/include \
-I$(top_srcdir)/src/sdk/scripting/sqplus
Is the problem with "no matching function for call to 'Push(SQVM*&, const wxArrayString&)'" reported into GCC Bugzilla? I am preparing RPMs for inclusion into Fedora Extras and this is a blocker.
Any problem, that is not in a bugzilla, is not a problem ;-) And the shorter will be the test case the better. And because the code is right (I trust you :-) ), it worked in earlier versions then there is a high chance that it will be fixed quickly. Can somebody create the test case?Is the problem with "no matching function for call to 'Push(SQVM*&, const wxArrayString&)'" reported into GCC Bugzilla? I am preparing RPMs for inclusion into Fedora Extras and this is a blocker.
I don't know, I posted to squirrel forum too, but they (correctly) tell that is a GCC issue.
I think we should make a short code snippet showing the problem and then post it to bugzilla. Like that is too long code to post there.