zoukankan      html  css  js  c++  java
  • 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
    ", i);
        
        
        lua_close(L);
        return 0;
    }
  • 相关阅读:
    IIs和ftp
    java中HashMap重要性质和优化总结
    深入理解mysql的left join(真的很深入)
    windows bat批处理语法简析
    遍历hashMap的两种方式
    Java开发实践 集合框架 全面分析
    MySQL中日期与时间类型
    CentOS6.5下Redis安装与配置
    查看redis进程
    Web阶段:第七章:Tomcat服务器
  • 原文地址:https://www.cnblogs.com/reynold-lei/p/3589502.html
Copyright © 2011-2022 走看看