GO windows下编译luajit

1 GO嵌入luajit需要用到cgo,使用cgo需要安装gcc,在windows上下载MinGW-W64安装上配置好环境变量就可以

2 gcc编译luajit,生成.a文件. 把LuaJIT-2.0.4src下面的makefile里面的BUILDMODE= mixed注释掉,同时打开BUILDMODE= static,执行make,这样会生成libluajit.a

3 linux下库的特点,第一个特点是所有的库以lib开头,GCC命令在在-l 选项所指定的文件名前会自动加入lib。第二个特点文件名以.a结尾的库是静态库 。第三个特点文件名是.so的库为共享库(共享库是在运行的时候动态加载的 ) 。默认情况下,GCC在链接时优先使用共享库,只有当共享库不存在时才考虑使用静态库

4 github下载goluajit,%GOPATH%srcgithub.comchoixgoluajitluagit.go的内容如下

#cgo windows LDFLAGS: -lluajit -L.

注意,-l后面是库,会自动加上lib再查找,-L 是库的查找目录,这里一个.表示在luagit.go同个目录下

5 把libluajit.a拷贝到工程生成exe同目录下

6 luajit的存放目录是goluajitluajit-2.0.4,修改luagit.go,改为如下

#include <luajit-2.0.4/src/lua.h>
#include <luajit-2.0.4/src/lualib.h>
#include <luajit-2.0.4/src/lauxlib.h>

7 程序里面import "github.com/choix/goluajit" 后就可以正常使用了.

原文地址:https://www.cnblogs.com/sysnap/p/6900482.html