У меня есть следующий файл C:
//thing.c
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
#include <stdio.h>
lua_State* L;
int main(){
L = lua_open();
lua_dostring(L, "print(\"lua\")");
printf("hello\n");
return 0; }
и следующий make-файл:
default:
gcc -I/usr/include/lua50 -L/usr/lib -o qwerty thing.c -llua50 -llualib50
код строится просто отлично, но когда я его запускаю, я получаю следующее:
[string "print("lua")"]:1: attempt to call global `print' (a nil value)
hello
Примечание:Я видел много других вопросов по этой ошибке, но все они связаны с работой непосредственно в Lua, а не с API C. Они также, кажется, подразумевают, что проблема в том, что функция print
никогда не была определена. Я этого не понимаю, так как я могу запустить как интерпретатор lua, так и скрипт lua прямо из командной строки.
РЕДАКТИРОВАТЬ:Я использую луа 5.0