将c和lua程序编译成单个可执行文件
我有一个用c和lua组合编写的程序。我知道如何编译c程序,我知道如何编译lua程序,但我不知道如何将混合程序编译成单个可执行文件。还需要注意的是,我使用的是luacapi将c和lua程序编译成单个可执行文件,c,lua,compilation,C,Lua,Compilation,我有一个用c和lua组合编写的程序。我知道如何编译c程序,我知道如何编译lua程序,但我不知道如何将混合程序编译成单个可执行文件。还需要注意的是,我使用的是luacapi 编辑:只是澄清一下,我不是以任何形式使用lua解释器。我认为最简单的方法是存储一个字符串,然后使用luaL\u dostring()函数执行它 我没有检查,但我非常确定您可以使用luac编译Lua代码,并将其存储在char[]缓冲区中,而不是存储脚本源代码。 通过在编译时(而不是在运行时)一次性将源代码编译成luavm字节码,
编辑:只是澄清一下,我不是以任何形式使用lua解释器。我认为最简单的方法是存储一个字符串,然后使用
luaL\u dostring()
函数执行它
我没有检查,但我非常确定您可以使用luac编译Lua代码,并将其存储在char[]
缓冲区中,而不是存储脚本源代码。
通过在编译时(而不是在运行时)一次性将源代码编译成luavm字节码,这将稍微加快速度
比如:
const char *luacode = "print('Hello')";
lua_State *L;
...
...
luaL_dostring (L, luacode);
可能的重复不是重复,这个问题是关于在C可执行文件中嵌入Lua scrpt,环Ø所指的问题是关于在C可执行文件中嵌入Lua解释器(OP可能不想这样做),好奇的是:当“不以任何方式、形状或形式使用Lua解释器”时,Lua在你的应用程序中如何运行?@tonypdmtr我想OP要么通过静态链接嵌入Lua解释器,要么决定依赖共享库(.dll或.so)。他可能是说,他没有使用lua发行版附带的
lua
可执行文件。我使用了luacapi,没有使用安装lua时作为可执行文件的解释器