Author Topic: Errors building C::B rev2688  (Read 38808 times)

Offline Michael

  • Lives here!
  • ****
  • Posts: 1608
Errors building C::B rev2688
« on: July 05, 2006, 03:51:47 pm »
Hello,

Moe than the extra-qualification error, I am also getting the following errors when building on Windows XP C::B rev2688 with wxWidgets 2.6.3 Patch 2 and GCC 4.1.1:

Quote
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&)

Best wishes,
Michael

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4315
    • Code::Blocks IDE
Re: Errors building C::B rev2688
« Reply #1 on: July 05, 2006, 03:58:25 pm »
Hmm... killerbot has the same errors but I don't.
But if this happens to you too, something's definetely wrong. I 'll check this out...
Be patient!
This bug will be fixed soon...

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
Re: Errors building C::B rev2688
« Reply #2 on: July 05, 2006, 05:19:06 pm »
What helped me was to remove the .objs and devel folder recursively, search for *.a and *.gch to remove them, too and finally do a rebuild project (workspace). It could be that due to changes I had done the time of certain files was older which did not cause a re-compilation or something...?!
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4315
    • Code::Blocks IDE
Re: Errors building C::B rev2688
« Reply #3 on: July 05, 2006, 05:23:39 pm »
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...
Be patient!
This bug will be fixed soon...

Offline feisal

  • Single posting newcomer
  • *
  • Posts: 5
Re: Errors building C::B rev2688
« Reply #4 on: July 05, 2006, 06:50:41 pm »
I can confirm that problem also, Fedora Core 5, gcc 4.1.1 and wxWidgets 2.6.3

Offline Michael

  • Lives here!
  • ****
  • Posts: 1608
Re: Errors building C::B rev2688
« Reply #5 on: July 05, 2006, 07:22:40 pm »
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...

Hello,

Thank you very much for your help.

Some additional info that could help. I am using wxWidgets built with GCC 4.0.3, but I use GCC 4.1.1 to build C::B (as I did usually since Ceniza has made it available :)), because I cannot build C::B with GCC 4.0.3 (I got an internal compiler error :().

The C::B revision I am using is CB_20060703_rev2661_win32 (nightly build of 3 July).

Moreover, the I have not done a clean SVN checkout, but updated the SVN sources I had already (last update on 6 or 7 January 2006).

The MinGW I have, I have got it by using MinGW 5.0.3 and updated with GCC 4.1.1.

May be the problem is the compiler version. GCC 4.1.1 is stricter and it could not appreciate something...

Best  wishes,
Michael

Offline Michael

  • Lives here!
  • ****
  • Posts: 1608
Re: Errors building C::B rev2688
« Reply #6 on: July 05, 2006, 09:35:34 pm »
Hello,

Yannis was right :). The compiler version seems to be the problem. GCC 4.1.1 fails, but not GCC 3.4.5.

Does not squirrel support GCC 4.1.1? If so, GCC compiler > 4.0.x could not be used to build C::B.

Best wishes,
Michael
 

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4315
    • Code::Blocks IDE
Re: Errors building C::B rev2688
« Reply #7 on: July 05, 2006, 09:54:39 pm »
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...
Be patient!
This bug will be fixed soon...

Offline Michael

  • Lives here!
  • ****
  • Posts: 1608
Re: Errors building C::B rev2688
« Reply #8 on: July 05, 2006, 09:59:46 pm »
First, I use 4.0.3 and it builds just fine.

It is the same version that Ceniza is providing?

Second, the error is not in Squirrel but in a template of SqPlus (the library we use to bind Squirrel).

Thank you for pointing that out :).

I have to test it with gcc 4.1.x...

Thanks :). Just wonder if it is a local problem or other.

Best wishes,
Michael

mdelfede

  • Guest
Re: Errors building C::B rev2688
« Reply #9 on: July 06, 2006, 12:51:26 am »
Same error here, GCC version 4.1.0 SuSe.

On windows with mingw builds fine.

Regards

Max

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4315
    • Code::Blocks IDE
Re: Errors building C::B rev2688
« Reply #10 on: July 06, 2006, 10:25:20 am »
I need someone who has this problem to try the following:

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?
Be patient!
This bug will be fixed soon...

Offline feisal

  • Single posting newcomer
  • *
  • Posts: 5
Re: Errors building C::B rev2688
« Reply #11 on: July 06, 2006, 03:52:05 pm »
I need someone who has this problem to try the following:

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?

revision 2698, has this already.  But it still does not compile, same error about cannot find a matching function call
to 'Push(SQVM*&, const wxArrayString&)'

Fedora Core 5, gcc  4.1.1

mdelfede

  • Guest
Re: Errors building C::B rev2688
« Reply #12 on: July 06, 2006, 07:25:50 pm »
I need someone who has this problem to try the following:

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?

revision 2698, has this already.  But it still does not compile, same error about cannot find a matching function call
to 'Push(SQVM*&, const wxArrayString&)'

Fedora Core 5, gcc  4.1.1

The same here, with gcc 4.1.0 SuSe and revision 2699.

Offline TDragon

  • Lives here!
  • ****
  • Posts: 943
    • TDM-GCC
Re: Errors building C::B rev2688
« Reply #13 on: July 06, 2006, 08:32:53 pm »
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.
https://jmeubank.github.io/tdm-gcc/ - TDM-GCC compiler suite for Windows (GCC 9.2.0 2020-03-08, 32/64-bit, no extra DLLs)

mdelfede

  • Guest
Re: Errors building C::B rev2688
« Reply #14 on: July 06, 2006, 09:16:47 pm »
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.

Maybe gcc 3.4.5 uses "void SqPlus::Push(SQVM*, const void*)" and 4.1.1 doesn't accept the implicit type conversion ???

<edit>
No... adding a definition for SqPlus::Push(SQVM*, wxArrayString *) leads to duplicate definition error, as it's defined in sc_base_types, line 21...

It must be caused from the extra & in 'Push(SQVM*&, const wxArrayString&)', the funcs defined are all of kind 'Push(SQVM*...)'.



« Last Edit: July 06, 2006, 09:32:48 pm by mdelfede »