golang通过cgo调用lua


1.前期准备

1.第三方库:https://github.com/aarzilli/golua
2.下载lua源码:https://www.lua.org/ftp/lua-5.1.4.tar.gz
3.编译lua:
在windows下使用“mingw32-make.exe mingw test”
在Linux下使用“make linux test”
将得到的liblua.a放到github.com\aarzilli\golua\lua\lua下面
4.并且修改golua.go和lua.go,将库路径改好即可
#cgo CFLAGS: -I ./lua
#cgo windows,!llua,!luajit LDFLAGS: -L./lua -llua -lmingwex -lmingw32

2.测试go代码

package main

import (
	"github.com/aarzilli/golua/lua"
)

func main() {
	L := lua.NewState()
	L.OpenLibs()
	defer L.Close()

	L.DoString("print('sdfsasfd')")
}

3.完成的一个学习项目

    锻炼自己对go、lua、c的理解,特意做了一个项目点击跳转。使用go编译lua脚本为字节码,通过网络传给c,通过c执行lua脚本。 本项目包含go - lua - c之间相互调用的方法,值得学习。

4.总结

lua的源码可以编译到很多平台,我这里只测试了windows和Linux两种。更多的用法,可以参考c语言调用lua,因为go调lua也是用的cgo通过c调用lua额。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM