先来个简单的示例:
#include <stdio.h>
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
int main(){
lua_State* L = luaL_newstate();
luaL_openlibs(L);
printf("——————开始运行脚本——————\n");
if(luaL_loadfile(L, "main.lua") || lua_pcall(L, 0, 0, 0) != 0){
printf("Lua语法错误:\n%s\n",luaL_checkstring(L,-1));
}
printf("——————脚本运行完毕——————\n");
lua_close(L);
return 0;
}
main.c
print("hello world!")'
输出结果:
[root@localhost ~]# cc -o main main.c -Wall -O2 -llua -lm -ldl
[root@localhost ~]# ./main
——————开始运行脚本——————
Lua语法错误:main.lua:1: unfinished string near
——————脚本运行完毕——————
[root@localhost ~]#
为什么会出现错误呢?
原来是不小心在脚本内多输入一个单引号导致语法错误!
现在我们来修改main.c文件。
print("hello world!")
不需要重新编译宿主文件,改变脚本文件后直接运行即可。
现在输出结果如下:
——————开始运行脚本——————
hello world!
——————脚本运行完毕——————
[root@localhost~]#