编写使用Lua
库的C
程序后,除了需要链接Lua
库以外,还需要链接libm
和libdl
。以下面程序为例(test.c
):
#include <stdio.h>
#include <stdlib.h>
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
int main(void)
{
char buf[256] = {0};
int error = 0;
lua_State *L = luaL_newstate();
luaL_openlibs(L);
while (fgets(buf, sizeof(buf), stdin) != NULL)
{
error = luaL_loadstring(L, buf) || lua_pcall(L, 0, 0, 0);
if (error)
{
fprintf(stderr, "Error is %s.\n", lua_tostring(L, -1));
lua_pop(L, 1);
}
}
lua_close(L);
return 0;
}
编译:
[root@Fedora test]# gcc -g -o test test.c -llua -lm -ldl
执行:
[root@Fedora test]# ./test
print("hello")
hello
^C
[root@Fedora test]#