[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: C++ app + scripts requiring C modules
- From: Jose <jmalv04@...>
- Date: Sat, 17 Jan 2009 13:39:00 +0100
Hi,
I am building a C++ app that calls scripts, which many times require C modules.
I've researched the list on this topic and I've also looked at the
wiki but I still have
a few questions (pls note I'm new to Lua). This is my first message, I'll post a
second one with more questions.
I built a simple module compiled in C++ which has the following
luaopen_ function.
I've tried two different approaches to run the script, the first one
works and the second
doesn't. Can somebody help me understand why the second approach fails?
I also don't understand why in the second script prints twice the package.cpath
Thanks
jose
----------------------------------------------------------------------------------------------------------------------------
extern "C" {
int luaopen_testlib(lua_State *L)
{
std::cout << "luaopen_testlib" << std::endl;
luaL_register(L, "testlib", testlib);
return 1;
}
}
Approach 1: Works
===============
local mylib = package.loadlib("./testlib.so", "luaopen_testlib")
print "initializing"
mylib()
print (package.cpath)
* Output:
initializing
luaopen_testlib
./?.so;/usr/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/?.so
Approach 2: Fails
==============
print (package.cpath)
require 'testlib'
* Output:
./?.so;/usr/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/?.so
./?.so;/usr/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/?.so
lua: ./testlib.lua:14: loop or previous error loading module 'testlib'
stack traceback:
[C]: in function 'require'
./testlib.lua:14: in main chunk
[C]: in function 'require'
testlib.lua:14: in main chunk
[C]: ?