mac下lua调用c生成的so文件

来源:互联网 发布:react js 中文教程 编辑:程序博客网 时间:2024/04/30 01:59

1.sum2.c

#include <math.h>  #include "lua.h"#include "lauxlib.h"  #include "lualib.h" static int ding_sum2(lua_State *L){      double d1 = luaL_checknumber(L, 1);      double d2 = luaL_checknumber(L, 2);      lua_pushnumber(L, d1+d2);      return 1;  }    static const struct luaL_Reg ding_lib[] = {      {"ding_sum2" , ding_sum2},      {NULL, NULL}  };    int luaopen_ding_lib(lua_State *L){      // luaL_newlib(L, ding_lib); // 5.2      luaL_register(L, "ding_lib",ding_lib); // lua 5.1      //        return 1;  }  

2.

把.c放在在/Users/lxy/Documents/gxmj/guangxi/guangxi_debug/frameworks/runtime-src/XsdkPublic/cocos2d-x/external/lua/luajit/include 在mac下用命令

gcc -c main.cpp ; gcc -O2 -bundle -undefined dynamic_lookup -o mylualib.so main.o 
生成so

3.调用

package.cpath = "/Users/lxy/Documents/gxmj/guangxi/guangxi_debug/res/?.so;"..package.cpathprint("package.cpath:"..package.cpath)local mylib = require "ding_lib"  print("ding_lib:")print(type(mylib))  print(mylib.ding_sum2(23,17)) 

原创粉丝点击