之前希望学点lua来自定义ocgcore,然而官方的脚本机器都是C语言写的,要懂点Lua调用C/C++库的知识。所以看了下在线版的Programming in Lua,下了个5.4测试版的源代码自己编译了一下。
生成Lua编译器
貌似官网只说了*nix的几个发行版上的编译,对Windows上面不太友好(好吧是提供了二进制文件的下载方法)。我早些时候装了个MinGW-win64,所以用mingw32-make mingw(反正是类似的命令)就可以了。不知道为什么,命令后面跟install的话,总是报告找不到文件。我都不知道install是make自带的还是什么东西。反正光生成二进制文件就没问题,所以我就把几个文件从\src拷贝出来开始用了。
不过没想到在5.2版本后语言不支持lua_register之类的一批函数,原书中直接调用loadlib也不支持了(我试了一下package.loadlib好像是可以的)。
C++生成dll
先按照书里写了个C++文件打算编译成动态链接库(.dll)文件,无奈VS技术重回低谷,总是报连接错误,最后简单粗暴地把Lua所有源代码文件都放进项目里了(大概正确做法是把编译生成的lua54.dll放进去?)。
代码都是抄的,最后找到了正确的示例,感谢。
// test.cpp
extern "C" {
#include "lua.h&#