首页 > 其他 > 详细

First Lua function running in C

时间:2014-03-09 08:37:43      阅读:275      评论:0      收藏:0      [点我收藏+]

这是我在C里面跑出来的第一个Lua 文件, 纪念一下。

1.Set up envirnonment:

Mac下面 Lua的src (即include) 和lib(binary)是分开的, 所以需要分别下载。

bubuko.com,布布扣

使用的是 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

代码如下:

bubuko.com,布布扣
#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;
}
bubuko.com,布布扣

First Lua function running in C,布布扣,bubuko.com

First Lua function running in C

原文:http://www.cnblogs.com/reynold-lei/p/3589502.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!