Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将c和lua程序编译成单个可执行文件_C_Lua_Compilation - Fatal编程技术网

将c和lua程序编译成单个可执行文件

将c和lua程序编译成单个可执行文件,c,lua,compilation,C,Lua,Compilation,我有一个用c和lua组合编写的程序。我知道如何编译c程序,我知道如何编译lua程序,但我不知道如何将混合程序编译成单个可执行文件。还需要注意的是,我使用的是luacapi 编辑:只是澄清一下,我不是以任何形式使用lua解释器。我认为最简单的方法是存储一个字符串,然后使用luaL\u dostring()函数执行它 我没有检查,但我非常确定您可以使用luac编译Lua代码,并将其存储在char[]缓冲区中,而不是存储脚本源代码。 通过在编译时(而不是在运行时)一次性将源代码编译成luavm字节码,

我有一个用c和lua组合编写的程序。我知道如何编译c程序,我知道如何编译lua程序,但我不知道如何将混合程序编译成单个可执行文件。还需要注意的是,我使用的是luacapi


编辑:只是澄清一下,我不是以任何形式使用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时作为可执行文件的解释器