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.
Вопрос: что я делаю не так?