User forums > Help

Errors building C::B rev2688

<< < (4/8) > >>

mandrav:

--- Quote from: TDragon 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.

--- End quote ---

Thanks for looking into it, TDragon. I 'm practically blind here since I don't have gcc 4.1.1 (but it works with gcc 4.0.3) so I appreciate any help I can get :)

Note: Below, I 'm talking about files located inside src/sdk/scripting

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 :)

mdelfede:

--- Quote from: mandrav on July 06, 2006, 09:21:42 pm ---
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 :)

--- End quote ---

The error states that 'Push(SQVM*&, const wxArrayString&)' is missing; that's seems true to me, the function defined by DECLARE_INSTANCE_TYPE is 'Push(SQVM*, const wxArrayString&)', without extra indirection '&'.

Best Regards

Max

mdelfede:
Did somebody find a solution ?
I was trying all day with no success....

Regards

Max

killerbot:
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 ...)

Game_Ender:
I saw it mentioned here on the Ogre forums that there are problems with Sqplus and GCC 4.1.x, but is there even a stable release of 4.1.x or is it still in testing?  I don't think this is something Code::Blocks specific.

EDIT:  We probably want to jump in on the discussion over at the squirrel forums.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version