如何编译使用Lua库的C程序

编写使用LuaC程序后,除了需要链接Lua库以外,还需要链接libmlibdl。以下面程序为例(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]#

发表评论

邮箱地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.