tengo el siguiente archivo C:intento de llamar mundial `print'(un valor nulo)
//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; }
y el siguiente archivo MAKE:
default:
gcc -I/usr/include/lua50 -L/usr/lib -o qwerty thing.c -llua50 -llualib50
el código construye muy bien, pero cuando ejecutarlo me sale el siguiente:
[string "print("lua")"]:1: attempt to call global `print' (a nil value)
hello
Nota: he visto las muchas otras preguntas en este error, pero todos se ocupan de trabajar directamente en Lua, a diferencia de con la C api. También parecen dar a entender que el problema es que la función print
nunca se definió. No entiendo esto, ya que puedo ejecutar tanto un intérprete lua como un script lua directamente desde la línea de comando.
EDITAR: Estoy utilizando Lua 5.0
'thing.c :(texto + 0x20):. Undefined reference to 'luaL_openlibs'' Notable: Estoy utilizando Lua 5.0 – ewok
@ewok, consulte edición . Sin embargo, dado que obtiene un error de enlace (y no un error del compilador), creo que puede incluir el encabezado 5.1 o 5.2, pero vinculando la biblioteca 5.0. Veo que está especificando la ruta de inclusión 5.0, pero me pregunto si tiene los encabezados 5.1 o 5.2 en algún lugar de su ruta de inclusión predeterminada. –