先來個簡單的示例:
#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!")'
輸出結(jié)果:
[root@localhost ~]# cc -o main main.c -Wall -O2 -llua -lm -ldl
[root@localhost ~]# ./main
——————開始運行腳本——————
Lua語法錯誤:main.lua:1: unfinished string near
——————腳本運行完畢——————
[root@localhost ~]#
為什么會出現(xiàn)錯誤呢?
原來是不小心在腳本內(nèi)多輸入一個單引號導致語法錯誤夏哭!
現(xiàn)在我們來修改main.c文件。
print("hello world!")
不需要重新編譯宿主文件献联,改變腳本文件后直接運行即可竖配。
現(xiàn)在輸出結(jié)果如下:
——————開始運行腳本——————
hello world!
——————腳本運行完畢——————
[root@localhost~]#