mingw64 安装lua及lua socket

方便起见,直接下载msys2:MSYS2 安装之

进入msys2安装目录下包管理器服务器配置文件所在路径

...\msys2\etc\pacman.d

为了选择速度快的软件包下载服务器

将这三行

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch

分别加入划线的三个文件的开头

 一行加一个,按顺序来

 

然后进入msys2命令行

更新msys2系统软件包:

 运行  pacman -Syu 

有多个包选择时用空格分隔

 更新其他基础包,运行  pacman -Su

然后,pacman -S gcc 安装gcc,有多个包选择时用空格分隔

gcc命令可用后,关闭 msys2命令窗口

下载lua源码 Lua: download

lua5.x.x.ta.gz

拷贝到 msys2下的home/xxx

打开mingw64 命令行

初始目录就是上面的 拷贝路径,

于是解压

tar -zxvf lua-5.x.x.tar.gz

cd lua-5.x.x

不用到src里面,外层即可

执行make mingw

不出意外,不会报错

进入 src目录,删除.o,创建目录拷贝结果等等,可以弄个sh执行

#!/bin/bash

rm -rf *.o

mkdir lua

mkdir lua/bin

mkdir lua/include

mkdir lua/lib

cp luac.exe  lua53.dll lua.exe ./lua/bin

cp lauxlib.h lua.h lua.hpp lua.hpp lualib.h  ./lua/include

cp liblua.a ./lua/lib

#------------------------------------------------------------------------

至此,lua mingw版本编译安装完毕, 将lua文件夹拷贝到自己想放的位置,window下别忘记将lua/bin,加入环境变量

下载luasocket源码

GitHub - diegonehab/luasocket: Network support for the Lua language

git clone或者和直接下zip都可以

将上一步弄出来的lua中的bin,include,lib分别拷贝到 msys2安装目录下的usr/local

我的是D:\Dev\Env\msys2\usr\local

lua/bin/*    =====>/usr/local/bin/lua/5.3

lua/include/* =====>/usr/local/include/lua/5.3

lua/lib/*  ========> /usr/local/lib/lua/5.3

将 lua/bin/lua53.dll 也拷贝到 /usr/local/lib/lua/5.3

mingw64 命令行进入代码目录,src外面那级

make PLAT=mingw LUAV=5.3 LUAINC_mingw_base=/usr/local/include LUALIB_mingw_base=/usr/local/lib LUAPREFIX_mingw=/usr/local/bin install

看这个命令知道为什么要拷贝lua到/usr/local/下了吧,也可以指定其他位置,不过外面得包上lua/5.3两层目录,有问题多半是路径问题,查看 gcc命令的inc

编译完后,即可删除/usr/local/bin,/usr/local/include,  /usr/local/lib/下的lua文件夹,

这里拷贝主要是上面的make 总是到那个位置找,不想去动它的make,那就拷贝了,

如果以后也要在msys2下使用lua,那就是lua/bin ====> /usr/local/bin, lua/include====>

/usr/local/include, lua/lib====>/usr/local/lib,  对应拷贝下就可以,不用 lua/5.3那一层,麻烦!

最后,将 /usr/local/bin/lua/5.3 下的 lua, mime,socket 拷贝到  lua/bin

include, lib没有生成东西,不用处理,至此,lua和 luasocket需要的都在 lua文件下了,

可以弄个文件测试下,在 lua/bin下创建文本hello.lua

-- hello.lua
local socket = require"lua/socket"
local mime   = require"lua/mime"
print("Hello from " .. socket._VERSION .. " and " .. mime._VERSION .. "!")
 

cmd 进入 lua/bin

lua hello.lua

Done!Enjoy!

猜你喜欢

转载自blog.csdn.net/mzr122/article/details/120524706