Hi
I have been banging
my head on this simple problem. The archives don't seem to have an
answer.
Running linux 2.6.19
on an ARM926.
Have a C
program with lua embedded that invokes lua, loads libraries, then
executes a lua script which has a require"socket.unix" statement
that fails.
Running the standard
lua interpreter with require"socket.unix" works just fine.
Where could I have
gone wrong? My pertinent(?) C code is:
if ( (L =
lua_newstate()) ) {
... // open the
libraries then ...
status =
luaL_loadfile( L, /etc/capgo/process.lua );
...
status =
lua_pcall(L, 0, LUA_MULTRET, 0);
Which fails with
status = LUA_ERRRUN when process.lua attempts to load a C library with:
require "socket.unix"
Which bombs with:
"error loading
module 'socket.unix' from file '/urs/lib/socket/unix.so':
/urs/lib/socket/unix.so:
undefined symbol: lua_insert
So the question is,
how can "undefined symbol" come about in my program but not in lua.c,
when both are built against the same static lualib.a?
Help greatly
appreciated.