From: Matthew B. <mat...@ea...> - 2006-02-22 00:35:56
|
I am trying to get the LUA bindings under windows to work, but have failed miserably. Just working in the examples\lua\simple directory I run swig -lua example.i from the DOS cmd line. The file example_wrap.c contains a declaration of a pointer that is not at the start of the function which causes the Microsoft compiler to complain, in particular Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. example_wrap.c example_wrap.c(1035) : error C2275: 'swig_lua_userdata' : illegal use of this ty pe as an expression example_wrap.c(584) : see declaration of 'swig_lua_userdata' example_wrap.c(1035) : error C2065: 'usr' : undeclared identifier example_wrap.c(1036) : error C2223: left of '->ptr' must point to struct/union example_wrap.c(1037) : error C2223: left of '->type' must point to struct/union example_wrap.c(1038) : error C2223: left of '->own' must point to struct/union example.c Generating Code... A segment of the example_wrap.c code... SWIGRUNTIME void SWIG_Lua_NewPointerObj(lua_State* L,void* ptr,swig_type_info *type, int own) { if (!ptr){ lua_pushnil(L); return; } swig_lua_userdata* usr=(swig_lua_userdata*)lua_newuserdata(L,sizeof(swig_lua_userdata)); // get data usr->ptr=ptr; // set the ptr The declaration swig_lua_userdata* usr=... is not at the top of the function definition causing the failure. Now it is easy to fix this by hand and get the code to compile, however Lua will not read in the .dll that is created no matter how I set the paths or even if I use a complete pathname to the .dll file inside the loadlib() function. I'll play around with this a bit more, but I'm not sure if the Lua bindings are useable in this state on a windows machine, at least with a Microsoft compiler or any compiler that is strict ANSI C. I do not want to edit all the _wrap.c functions by hand. |