Hello everyone!
OK, I used these commands:
tolua++ class1.h >> class1.pkg
tolua++ -o class1_Lua.h class1.pkg
g++ main.cpp class1.cpp -ltolua++
GCC gives me this BS:
-----------------------------
In file included from main.cpp:6:
class1_Lua.h: In function `int
tolua_class1_tolua_class1_open00(lua_State*)':
class1_Lua.h:37: error: `tolua_ret' has both `extern' and initializer
class1_Lua.h:37: error: expected primary-expression before "extern"
class1_Lua.h:37: error: expected `)' before "extern"
class1_Lua.h: In function `int
tolua_class1_tolua_class1_open01(lua_State*)':
class1_Lua.h:90: error: `tolua_ret' has both `extern' and initializer
class1_Lua.h:90: error: expected primary-expression before "extern"
class1_Lua.h:90: error: expected `)' before "extern"
class1_Lua.h: In function `int tolua_class1_luaopen_class100(lua_State*)':
class1_Lua.h:115: error: `tolua_ret' has both `extern' and initializer
class1_Lua.h:115: error: expected primary-expression before "extern"
class1_Lua.h:115: error: expected `)' before "extern"
-----------------------------
Did I do something wrong? Here's my files:
main.cpp:
-----------------------------
#include <tolua++.h>
#include "class1_Lua.h"
int main()
{
}
-----------------------------
class1.cpp:
-----------------------------
#include "class1.h"
void Class1::AddOne()
{
++num;
}
-----------------------------
class1.h:
-----------------------------
#ifndef CLASS1
#define CLASS1
class Class1
{
int num;
public:
void AddOne();
};
#endif // CLASS1
-----------------------------
And here's the faulty one, class1_Lua.h:
-----------------------------
/*
** Lua binding: class1
** Generated automatically by tolua++-1.0.92 on 06/20/07 06:04:29.
*/
#ifndef __cplusplus
#include "stdlib.h"
#endif
#include "string.h"
#include "tolua++.h"
/* Exported function */
TOLUA_API int tolua_class1_open (lua_State* tolua_S);
/* function to register type */
static void tolua_reg_types (lua_State* tolua_S)
{
}
/* function: tolua_class1_open */
#ifndef TOLUA_DISABLE_tolua_class1_tolua_class1_open00
static int tolua_class1_tolua_class1_open00(lua_State* tolua_S)
{
#ifndef TOLUA_RELEASE
tolua_Error tolua_err;
if (
!tolua_isnoobj(tolua_S,1,&tolua_err)
)
goto tolua_lerror;
else
#endif
{
lua_State* tolua_S = tolua_S;
{
TOLUA_API int tolua_ret = (TOLUA_API int) tolua_class1_open(tolua_S);
tolua_pushnumber(tolua_S,(lua_Number)tolua_ret);
}
}
return 1;
#ifndef TOLUA_RELEASE
tolua_lerror:
tolua_error(tolua_S,"#ferror in function
'tolua_class1_open'.",&tolua_err);
return 0;
#endif
}
#endif //#ifndef TOLUA_DISABLE
/* function: tolua_reg_types */
#ifndef TOLUA_DISABLE_tolua_class1_tolua_reg_types00
static int tolua_class1_tolua_reg_types00(lua_State* tolua_S)
{
#ifndef TOLUA_RELEASE
tolua_Error tolua_err;
if (
!tolua_isnoobj(tolua_S,1,&tolua_err)
)
goto tolua_lerror;
else
#endif
{
lua_State* tolua_S = tolua_S;
{
tolua_reg_types(tolua_S);
}
}
return 0;
#ifndef TOLUA_RELEASE
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'tolua_reg_types'.",&tolua_err);
return 0;
#endif
}
#endif //#ifndef TOLUA_DISABLE
/* function: tolua_class1_open */
#ifndef TOLUA_DISABLE_tolua_class1_tolua_class1_open01
static int tolua_class1_tolua_class1_open01(lua_State* tolua_S)
{
tolua_Error tolua_err;
if (
!tolua_isnoobj(tolua_S,1,&tolua_err)
)
goto tolua_lerror;
else
{
lua_State* tolua_S = tolua_S;
{
TOLUA_API int tolua_ret = (TOLUA_API int) tolua_class1_open(tolua_S);
tolua_pushnumber(tolua_S,(lua_Number)tolua_ret);
}
}
return 1;
tolua_lerror:
return tolua_class1_tolua_class1_open00(tolua_S);
}
#endif //#ifndef TOLUA_DISABLE
/* function: luaopen_class1 */
#ifndef TOLUA_DISABLE_tolua_class1_luaopen_class100
static int tolua_class1_luaopen_class100(lua_State* tolua_S)
{
#ifndef TOLUA_RELEASE
tolua_Error tolua_err;
if (
!tolua_isnoobj(tolua_S,1,&tolua_err)
)
goto tolua_lerror;
else
#endif
{
lua_State* tolua_S = tolua_S;
{
TOLUA_API int tolua_ret = (TOLUA_API int) luaopen_class1(tolua_S);
tolua_pushnumber(tolua_S,(lua_Number)tolua_ret);
}
}
return 1;
#ifndef TOLUA_RELEASE
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'luaopen_class1'.",&tolua_err);
return 0;
#endif
}
#endif //#ifndef TOLUA_DISABLE
/* Open function */
TOLUA_API int tolua_class1_open (lua_State* tolua_S)
{
tolua_open(tolua_S);
tolua_reg_types(tolua_S);
tolua_module(tolua_S,NULL,0);
tolua_beginmodule(tolua_S,NULL);
tolua_function(tolua_S,"tolua_class1_open",tolua_class1_tolua_class1_open00);
tolua_function(tolua_S,"tolua_reg_types",tolua_class1_tolua_reg_types00);
tolua_function(tolua_S,"tolua_class1_open",tolua_class1_tolua_class1_open01);
tolua_function(tolua_S,"luaopen_class1",tolua_class1_luaopen_class100);
tolua_endmodule(tolua_S);
return 1;
}
#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501
TOLUA_API int luaopen_class1 (lua_State* tolua_S) {
return tolua_class1_open(tolua_S);
};
#endif
-----------------------------
Anyone know what the problem is? Thanks! (And sorry for the long message...)