将一个由C和Lua编写的程序编译为单个可执行程序

我有一个由C和Lua编写的程序。我知道如何编译C程序,也知道如何编译Lua程序,但我不知道如何将这个混合程序编译成一个单独的可执行程序。值得注意的是,我正在使用Lua C API。

编辑:仅仅澄清一下,我没有以任何形式使用Lua解释器。

点赞
用户16827
用户16827

我认为最简单的方法是将您的程序存储为字符串,然后使用 luaL_dostring() 函数来执行它。

我没有检查过,但我相信您可以使用 luac 编译 Lua 代码并将其存储在 char [] 缓冲区中,而不是存储脚本源代码。 这样做会加快速度,因为在编译时会将源代码编译为 Lua VM 字节码,而不是在运行时。

类似于:

const char *luacode = "print('Hello')";
lua_State *L;
...
...

   luaL_dostring (L, luacode);
2017-11-26 08:36:01