首先按照在windows下的编译lua源码的方法编译出lua.lib、lub.dll,将其和lua的头文件一起放在lpeg的源码目录下。
clipboard.png

打开vs的命令行工具,注意要和编译lua源码所用的工具一致。

clipboard.png

切换到lpeg源码目录:注意需要先修改lpeg的源码,lptree.c文件中的luaopen_lpeg函数需要加上导出声明,否则require不能正确加载库

int __declspec(dllexport) luaopen_lpeg (lua_State *L);
int __declspec(dllexport) luaopen_lpeg (lua_State *L) {}

编译:cl /MD /O2 /c *.c
链接:link /DLL /OUT:lpeg.dll *.obj lua.lib
最终生成lpeg.dll
运行lua test.lua完成测试

另外在某台机器上碰到个奇怪的问题,需要修改luaopen_lpeg中的lpeg名称以及最终生成的dll名称,比如改成pegl


silvercore
15 声望1 粉丝