如何在 C 中编译嵌入式 Lua 代码?
我们知道Lua在作为一种简单语言和嵌入式语言方面做得很好。Lua与C一起工作得更好,因为不同的库为它提供了大量支持。
为了在C中编译嵌入式Lua,我们需要先编写一个Lua程序,然后编写一个调用Lua程序函数的C程序,然后我们将编译C程序。
将下面显示的程序视为Lua程序-
print("--I am using Lua from within C--")
应该注意的是,上面的Lua脚本应该保存,Script.Lua因为我们将在下面显示的C代码中使用这个名称。上面的Lua脚本将在C程序中调用。
示例
考虑下面显示的代码-
#include#include /* Include the Lua API header files. */ #include #include #include int main(void) { static const luaL_reg lualibs[] = { { "base", luaopen_base }, { NULL, NULL } { NULL, }; /* A function to open up all the Lua libraries you declared above. */ static void openlualibs(lua_State *l) { const luaL_reg *lib; for (lib = lualibs; lib->func != NULL; lib++) { lib->func(l); lua_settop(l, 0); } } /* Declare a Lua State, open the Lua State and load the libraries (see above). */ lua_State *l; l = lua_open(); openlualibs(l); printf("This line in directly from C\n\n"); lua_dofile(l, "script.lua"); printf("\nBack to C again\n\n"); /* Remember to destroy the Lua State */ lua_close(l); return 0; }
现在我们完成了代码;我们只需要编译上面显示的C程序。为此,我们可以运行以下命令-
cc -o embedembed.c\ -I/usr/local/include \ -L/usr/local/lib \ -llua -llualib
需要注意的是,名称embed.c是上图所示的C文件的名称。
此外,上面显示的命令仅在您使用Linux机器的情况下才有效。
要在Windows上编译代码,我们需要执行以下步骤-
创建一个新项目。
添加embed.c文件。
添加2个Lua库(*.lib)-标准库和核心库。
将Lua包含文件的位置添加到项目选项(“目录选项卡”)。
您可能还需要添加库文件的位置-与上述方法相同。
编译和构建-就是这样。
输出结果
This line in directly from C --I am using Lua from within C-- Back to C again