luaL_newstate не работает

Создаю проект, решил добавить в него интеграцию с Lua — не получилось. Вот по этому гайду я написал следующий код:

#include <stdio.h>
#include <lua/lua.h>
#include <lua/lualib.h>
#include <lua/lauxlib.h>

int main(int argc, char *argv[]) {
    lua_State *L;
    int ret = 0;

    L = luaL_newstate();
    puts("hey");
    if (!L) {
        fprintf(stderr, "Fail to open Lua\n");

        return 0;
    }
    luaL_openlibs(L);

    luaL_loadfile(L, argv[1]);
    ret = lua_pcall(L, 0, 0, 0);
    if (ret != 0) {
        fprintf(stderr, "Fail: %s\n", lua_tostring(L, -1));

        return 0;
    }

    lua_close(L);

    return 0;
}

Компилируется файл следующим образом:

gcc -Wall -O0 -g -o lua-test lua-test.c -I/mingw64/include -L/mingw64/lib -llua54

Запускается таким:

./lua-test lua-sample.lua

Содержание файла lua-sample.lua таково:

print('Hello, world!')

При этом, ни "Hello, world!" ни "hey" не выводятся — приложение падает на luaL_newstate. Отладчик GDB даёт такой результат:

Starting program: /home/hitc/fd/src/lua-test lua-sample.lua                                                                                                  [New Thread 9176.0x2570]
[New Thread 9176.0xa38]
[Thread 9176.0xa38 exited with code 3221225595]
[Thread 9176.0x213c exited with code 3221225595]
During startup program exited with code 0xc000007b.

Вопрос: что я делаю не так?


Ответы (0 шт):