首先下载 luasocket,并准备好 gcc环境(我用的是 tdm64-gcc-4.8.1-3)。
选一个工作目录,比如 Temp,解压 luasocket-master.zip 到 Temp 目录下。
然后在 Temp目录下新建一个文本文件 makefile.diff,内容如下:
--- src\makefile
+++ src\makefile
@@ -18,18 +18,18 @@
# LUAV: 5.1 5.2
# lua version to build against
-LUAV?=5.1
+LUAV?=5.2
# MYCFLAGS: to be set by user if needed
-MYCFLAGS=
+MYCFLAGS=-m64
# MYLDFLAGS: to be set by user if needed
-MYLDFLAGS=
+MYLDFLAGS=-m64
# DEBUG: NODEBUG DEBUG
# debug mode causes luasocket to collect and returns timing information useful
# for testing and debugging luasocket itself
-DEBUG?=NODEBUG
+DEBUG?=DEBUG
# COMPAT: COMPAT NOCOMPAT
# when compiling for 5.2, use LUA_COMPAT_MODULE
@@ -109,9 +109,10 @@
# Install directories
#
-INSTALL_DIR=install -d
-INSTALL_DATA=install -m644
-INSTALL_EXEC=install
+INSTALL_BB=busybox install
+INSTALL_DIR=$(INSTALL_BB) -d
+INSTALL_DATA=$(INSTALL_BB) -m644
+INSTALL_EXEC=$(INSTALL_BB)
INSTALL_TOP=$(DESTDIR)$(prefix)
INSTALL_TOP_LDIR=$(INSTALL_TOP)/$(LDIR)
@@ -372,7 +373,7 @@
$(INSTALL_EXEC) $(SERIAL_SO) $(INSTALL_SOCKET_CDIR)/$(SERIAL_SO)
local:
- $(MAKE) install INSTALL_TOP_CDIR=.. INSTALL_TOP_LDIR=..
+ $(MAKE) install INSTALL_TOP_CDIR=../build/clib INSTALL_TOP_LDIR=../build/lua
clean:
rm -f $(SOCKET_SO) $(SOCKET_OBJS) $(SERIAL_OBJS)
打开 MinGW Command Prompt,进入工作目录下
cd Temp/luasocket-master
并打好补丁
busybox patch -p0 < ..\makefile.diff
然后就编译吧
mingw32-make LUAINC="C:\DEV\Lua52\include" LUALIB="C:\DEV\Lua52\liblua52.a" PLAT="mingw" mingw
注意一下有没有出错
echo %ERRORLEVEL%
打包
mingw32-make PLAT="mingw" local
OK,build 目录下就是编译好的模块了。