I've been trying to embed lua in a c++ application but to no avail since the compiler complains about "lua_open".I'm using Lua 5.2.
I found alot of articles claiming that lua_open() was replaced in the fifth version but none of them mentioned with what.
Here's the code I am trying to compile
extern "C" { #include "../lua/lua.h" #include "../lua/lualib.h" #include "../lua/lauxlib.h" } int main() { int s=0; lua_State *L = lua_open(); // load the libs luaL_openlibs(L); luaL_dofile(L,"example.lua"); printf("\nDone!\n"); lua_close(L); return 0; }
Lua is implemented in pure ANSI C and compiles unmodified in all known platforms. All you need to build Lua is an ANSI C compiler (gcc and clang are a popular ones). Lua also compiles cleanly as C++.
Embedded Lua (eLua) is a scripting language designed for embedded systems. It is powerful but small enough to run on microcontroller platforms. Anton Mikanovich. Very often while developing complex systems, engineers have to greatly simplify the task of writing final user space applications.
Lua is a general-purpose embedded programming language designed to support procedural programming with data-description facilities.
Lua is compiled into byte code (not to be confused with machine code.) and executed by a software interpreter at runtime. C is a compiled language that is compiled into machine code from source code and executed by hardware.
Indeed, the lua_open
function is not mentioned in the lua 5.2 reference manual
A lua_State
is constructed with lua_newstate
, and you can use luaL_newstate
from lauxlib.h
A faster way to get the answers to such question is to look into the Lua 5.2 source code (which I just did).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With