First Lua function running in C
这是我在C里面跑出来的第一个Lua 文件, 纪念一下。
1.Set up envirnonment:
Mac下面 Lua的src (即include) 和lib(binary)是分开的, 所以需要分别下载。
使用的是 5.2.3 的src 和 standard lib(5.2.1_MacOS107_lib).
include 和 lib 在gcc 编译的时候需要用-L 引入。
2.代码:
VERY IMPORTANT:
ua_open() should not be used. In lua-5.1 it's still available as simple wrapper macro for luaL_newstate(). In lua-5.2 it doesn't exist at all. Attached patch replaces lua_open() call in freeciv code with luaL_newstate() call that works with both lua-5.1 and lua-5.2.
所以 之前写的程序有问题。
改写程序之后 才能run。
gcc :
gcc -o HelloMac main.c -L/Users/***/Downloads/lua-5.2.1_MacOS107_lib/include/ -L/Users/***/Documents/lua-5.2.3/src/ -llua
代码如下:
#include <stdio.h> #include <string.h> #include "/Users/***/Documents/lua-5.2.3/src/lua.h" #include "/Users/***/Documents/lua-5.2.3/src/lauxlib.h" #include "/Users/***/Documents/lua-5.2.3/src/lualib.h" int main (void) { lua_State *L = luaL_newstate(); /* opens Lua */ luaL_openlibs(L); luaL_dostring(L, "a = 10 + 5"); lua_getglobal(L, "a"); int i = (int)lua_tointeger(L, -1); printf("%d\n", i); lua_close(L); return 0; }
posted on 2014-03-09 03:26 Step-BY-Step 阅读(207) 评论(0) 编辑 收藏 举报