linux下一个简单的go通过c调lua的例子
linux下一个简单的go通过c调lua的例子
徐学良 发表于2年前
linux下一个简单的go通过c调lua的例子
  • 发表于 2年前
  • 阅读 23
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

首先需要自己现在linux下配置好go和lua环境

clua.lua

function add(x,y)
       return x + y
end


glua.go

package main
/*
#cgo pkg-config: lua5.1
#cgo luaa LDFLAGS: -llua -lm -ldl
#include <stdio.h>
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"

lua_State* L;
int luaadd(int x, int y)
{
        int sum;
        lua_getglobal(L,"add");
        lua_pushnumber(L, x);
        lua_pushnumber(L, y);
        lua_call(L, 2, 1);
        sum = (int)lua_tonumber(L, -1);
        lua_pop(L,1);
        return sum;
}

int call()
{
        int sum;
        L = lua_open();
        luaL_openlibs(L);
        luaL_dofile(L, "clua.lua");
        sum = luaadd(10, 2);
        lua_close(L);
        return sum;
}
*/
import "C"
import "fmt"

func main() {
    fmt.Println(C.call())
}

然后直接go run golua.go就可以了

共有 人打赏支持
粉丝 21
博文 180
码字总数 13338
×
徐学良
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: