文档章节

linux下一个简单的go通过c调lua的例子

徐学良
 徐学良
发布于 2015/12/31 10:36
字数 134
阅读 53
收藏 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就可以了

© 著作权归作者所有

共有 人打赏支持
徐学良
粉丝 23
博文 213
码字总数 13841
作品 0
浦东
程序员
私信 提问
win64怎么配置glua环境?

想在windows下用go调lua脚本,开发工具用的liteide,在windows下已经安装了lua5.1.4和go,初步打算使用github上大神们封装的glua库(aarzilli/golua · GitHub),那么问题来了,在linux下这个...

徐学良
2016/01/04
441
2
Lua入门

Lua是一个被设计成用于扩展C/C++编程的轻量级脚本语言。不幸的 是,网上很少有关于这个语言的在线教程。我主要通过阅读其源代码来了解它是怎样工作并且通过一些发布的程序学习它。希望,通过...

红薯
2009/02/06
5.1K
3
mysql读写分离(MySQL Proxy 安装和使用)

一、必备软件: 1、LUA 可以去LUA的官方下载:www.lua.org 2、MySQL Proxy 这里有好多二进制版本。 http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/ 或者去MYSQL官方下载源代码。 3、...

晨曦之光
2012/03/09
211
0
Lua 在移动平台上的应用——Lua 嵌入实践

现如今,移动应用程序被应用的越来越宽泛,程序越来越复杂,跨平台开发也显得越来越重要。针对各自的平台做原生开发无疑是重复制造轮子,那么有没有什么可以让已造好的轮子进行复用呢? Lua ...

_shieh
2016/01/07
103
0
Lua 协程coroutine

  协程和一般多线程的区别是,一般多线程由系统决定该哪个线程执行,是抢占式的,而协程是由每个线程自己决定自己什么时候不执行,并把执行权主动交给下一个线程。 协程是用户空间线程,操...

jeffjade
2014/11/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

myeclipse 启动到10分之一左右就挂了

删掉 {workspace}/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi

夜醒者
9分钟前
0
0
Hive on Spark 伪分布式环境搭建过程记录

进入hive cli是,会有如下提示: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) ......

PeakFang-BOK
16分钟前
0
0
用户输入和while 循环

# 用户输入和while循环# 7.1函数input() 的工作原理# 函数input() 让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其存储在一个变量中,以方便你使用。message = inp...

吕湘颖
16分钟前
0
0
开发函数计算的正确姿势 —— 排查超时问题

写不尽的 code,查不完的 bug 通常我们写 bug,哦,不对,写代码时总不会一帆风顺,往往各种 bug 充斥其中,即使测试有较高的代码覆盖率往往也会有漏网之鱼。能写出一些比较隐蔽或者看起来像...

阿里云云栖社区
20分钟前
1
0
Python3新特性

一、类型注解 例子: def add(x:int, y:int) -> int: return x + y 解释: 类型`的形式指定函数的**参数类型**,用`-> 类型`的形式指定函数的**返回值类型 然后特别要强调的是,Pyt...

_Change_
35分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部