文档章节

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

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

© 著作权归作者所有

共有 人打赏支持
徐学良
粉丝 22
博文 196
码字总数 13841
作品 0
浦东
程序员
使用 WITCH 来观察系统的无效处理

最近看了一篇 Paper - Watching for Software Inefficiencies with Witch,觉得作者排查性能问题的思路很不错,这里记录一下。 什么是无效处理 对于性能调优来说,我们会关注很多指标,这里,...

siddontang ⋅ 05/14 ⋅ 0

Lua 在移动平台上的应用——Lua 嵌入实践

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

_shieh ⋅ 2016/01/07 ⋅ 0

win64怎么配置glua环境?

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

徐学良 ⋅ 2016/01/04 ⋅ 2

11大类编程语言功能比较表(信息图)

导读:有程序员的地方就会有因为对编程语言的探讨而引发的战争(例如Linux之父Linus Torvalds炮轰C++ 一无是处,认为C++既无助于简化,以实际用于进行原型化或者简单的GUI编程,又不是像C那样...

sevens2008 ⋅ 2012/01/31 ⋅ 12

向 Linus 学习,让代码具有 good taste

原文出处:Brian Barto 译文出处:Linux中国 在最近关于 Linus Torvalds 的一个采访中,这位 Linux 的创始人,在采访过程中大约 14:20 的时候,提及了关于代码的 “good taste”。good tast...

Brian Barto ⋅ 2017/05/13 ⋅ 0

nginx和lua的协程

1、缘起 我最早接触协程时,对这东西很费解,甚至我看了lua的协程源码实现后,这个疑虑还是没有消除。直到有次在需要用异步编程时,对协程的理解一下子明白了。所以希望用从异步的角度解释协...

那一剑的风情 ⋅ 2015/06/09 ⋅ 5

合并N个有序链表与FQ公平调度

下大雨了,于是就想表达一些只有下雨才能表达的东西。夜半酒酣惊觉起,使我流泪忆江南…前天晚上下班带着小小在暴雨中狂奔,非常舒服,其实也算是流言终结者吧。反驳一下几千年来在我国北方通...

dog250 ⋅ 05/09 ⋅ 0

5、nodeMCU学习笔记--uart(附透传例子)

闲言碎语 这回来了解一下nodeMCU的串口模块。串口应该是我们用的最多的一个模块了,lua脚本都是通过串口传到mcu上面的。这部分的内容很少,只有4个函数。文档中提到了默认的波特率是115200,...

谢mingmin ⋅ 2016/10/27 ⋅ 0

编译原理之学习 lua 2.1 (五) 新增加的 fallback 和 oo 等支持

Lua 1.1 我比较关心的部分叙述得差不多了, 还有些东西可能还要简要的记一下, 免得忘记: 1. lua 1.1 的回收是简单的标记-清扫算法, 当前只有字符串和 array 需要标记和回收. 2. 比起 lua 1.0,...

刘军兴 ⋅ 2013/12/25 ⋅ 0

Step By Step(Lua调用C函数)

Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性。对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数。对于...

扶殊88 ⋅ 2013/10/22 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

VS2015配置并运行汇编(一步一步照图做)【vs2017的链接在最后】

前言 我是上学期学的汇编,因为有vs又不想用课上教的麻烦的dosbox以及masm32,但是一直没找到高亮插件和能调试的(难在运行不了而找不到答案上,出现的错误在最后放出,还请先达们不吝指点)...

simpower ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

你真的明白RPC 吗?一起来探究 RPC 的实质

你真的明白RPC 吗?一起来探究 RPC 的实质 不论你是科班出身还是半路转行,这么优秀的你一定上过小学语文,那么对扩句和缩句你一定不陌生。缩句就是去除各种修饰提炼出一句话的核心,而不失基...

AI9o後 ⋅ 昨天 ⋅ 0

z-index设置失效?

今天碰到了一个问题,就是在给li设置提示框的时候,有用到遮罩效果,本来想把对应的出现在最顶层,可是不管将li设置的z-index值设为多大,li都没有出现在遮罩层之上。 我在网上查了z-index设...

IrisHunag ⋅ 昨天 ⋅ 0

CyclicBarrier、CountDownLatch以及Semaphore使用及其原理分析

CyclicBarrier、CountDownLatch以及Semaphore是Java并发包中几个常用的并发组件,这几个组件特点是功能相识很容易混淆。首先我们分别介绍这几个组件的功能然后再通过实例分析和源码分析其中设...

申文波 ⋅ 昨天 ⋅ 0

Java对象的序列化与反序列化

Java对象的序列化与反序列化

Cobbage ⋅ 昨天 ⋅ 0

Sqoop

1.Sqoop: 《=》 SQL to Hadoop 背景 1)场景:数据在RDBMS中,我们如何使用Hive或者Hadoop来进行数据分析呢? 1) RDBMS ==> Hadoop(广义) 2) Hadoop ==> RDBMS 2)原来可以通过MapReduce I...

GordonNemo ⋅ 昨天 ⋅ 0

全量构建和增量构建的区别

1.全量构建每次更新时都需要更新整个数据集,增量构建只对需要更新的时间范围进行更新,所以计算量会较小。 2.全量构建查询时不需要合并不同Segment,增量构建查询时需要合并不同Segment的结...

无精疯 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部