C API
『入門Luaプログラミング』 201ページより、って試してみたら、
- うちの環境だと、lua.h は lua50/lua.h。ライブラリは、-llua50
- luaL_openlibs, luaL_dostring なしとエラー(luaL_openlibs は 5.1 で追加されたものと解説があった)
- lauxlib.h を見ると、luaL_openlib, lua_dostring はある
/* * $ gcc -Wall -W -o 2008092802 -llua50 -llualib50 2008092802.c */ #include <stdio.h> #include <lua50/lua.h> #include <lua50/lauxlib.h> int main(void) { lua_State *L; char sbuf[256]; L = lua_open(); /*luaL_openlibs(L);*/ while (fgets(sbuf, 256, stdin)) { if (lua_dostring(L, sbuf)) { fprintf(stderr, "ERROR %s\n", lua_tostring(L, -1)); } } lua_close(L); return 0; }
で、
1 [string "1..."]:1: unexpected symbol near `1' ERROR (null) x=1 print(x) [string "print(x)..."]:1: attempt to call global `print' (a nil value) ERROR (null)