1,编译luv
luv是一个libuv在lua中的绑定实现
1.1,luv和luajit2.05
如果系统已经装有luajit,这里直接luarocks make LUA_LIBRARIES=luajit
(注意)这里需要修改luv-scm-0.rockspec中代码,不然报错
[图片上传失败...(image-ea83c8-1588603916267)]
可是依然报错,那是路径没设置对,需要绝对路径,指向luajit安装目录
还是报错,这次可能跟gcc有关系
不是这个原因,原来是我们应该指向dll文件,
最终版本
luarocks make LUA_LIBRARIES=E:\luajit\lua51.dll
1.2,luv和luajit2.1.0
通过自带的msbuild.bat生成,或者将上边dll链接到已经存在的luajit2.1.0版本
2,luvi的下载和使用
2.1 从github下载对应版本如下:
官方使用说明
# Make a folder
git init myapp
# Write the app
vim myapp/main.lua
# Run the app
luvi myapp
# Build the binary when done
luvi myapp -o mybinary
# Run the new self-contained binary
./mybinary
# Deploy / Publish / Profit!
直接下载下来的exe,使用的时候老是报错,于是自己编译luvi试下
最后原因是我
luvi helloluv -o helloluv
这句话中最后helloluv跟本身目录重合了,命令分辨不出到底是目录还是要生成的
可执行文件,修改为
luvi helloluv -o helloluv.exe或者luvi helloluv -o hellolua
就不会报错了,另外如果在代码文件目录,执行相对路径编译,也没问题
luvi ../helloluv -o helloluv
main.lua不要也是可以的
但是编译出来的exe,会执行出错
看来官方下来的exe文件没有问题,但下边还是记录下,我当时的编译过程
2.2自己亲自编译
修改make.bat文件,将vs修改成本地的vs2019对应的vs版本16
报错提示如下,于是将
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\amd64
加入环境变量
接着报错如下: error MSB8020: The build tools for Visual Studio 2013 (Platform Toolset = 'v120') cannot be found.
懒得折腾了,直接通过msys2用make regular
然后
make
make test
msys2自带的perl版本不对,出现错误,于是复制windows的perl到msys2,设置环境变量
还是报错,找不到vs的nmake命令,看来只能另外找办法了
设置windows环境变量
MSYS2_PATH_TYPE=inherit
另外记录下,我尝试的办法所遇到的问题,以免后续犯错
增加系统路径中带有空格,解决:
export PATH=$PATH:C:\\"Program Files (x86)"\\"Microsoft Visual Studio"\\2019\\Community\VC\\Tools\MSVC\\14.24.28314\\bin\Hostx64\\x64
所幸,不安装nmake,照样通过perl的脚本执行机制,也编译出openssl了,不折腾了
3,lit包管理工具
curl -L https://lit.luvit.io/packages/luvit/lit/latest.zip > lit.zip
luvi lit.zip -- make lit.zip
4,luvit
luvit是为luvi编译工具,提供一个类似nodejs api的一个库,非常强大,以后就可以用lua写类似nodejs的代码了
git clone https://github.com/luvit/luvit.git
cd luvit
make
后续lit和luvit安装后快,lit安装需要下载github的一个文件(自己想办法)