出处http://blog.163.com/lrf_pop/blog/static/62231044201669102331890/
要求:Lua
版本5.1,torch7 commit 2cd59e1
前提:安装MinGW和MSYS
1 Windows安装Lua教程参考http://www.thijsschreijer.nl/blog/?p=863
1〉安装Lua
下载Lua5.1.5 http://www.lua.org/ftp/lua-5.1.5.tar.gz
以下lua安装目录用${LUA_DIR}代替
解压后编译
$ make clean
$ make mingw
$ make install INSTALL_TOP=%${LUA_DIR}不要带空格% TO_BIN="lua.exe luac.exe lua51.dll"
把%LUA_DIR%\bin配置到环境变量Path
下面一会会用到
把%LUA_DIR%\include配置到环境变量LUA_INCDIR
把%LUA_DIR%\bin配置到环境变量LUA_BINDIR
把%LUA_DIR%\bin配置到环境变量LUA_LIBDIR 这个有点问题
重新打开命令行,输入lua应该可以执行命令
$ lua -e "print('hello world')" 检查lua是否安装成功并且配置正确
2〉安装LuaRocks
下载luarocks-2.3.0-win32 参考网址https://codeload.github.com/keplerproject/luarocks/zip/master
一定要win32版本
解压后编译
$ install /MW /F /LV 5.1
现在会弹出第二个窗口,
记住里面的环境变量再关闭
参考配置
LUA_PATH=C:\Program Files (x86)\LuaRocks\lua\?.lua;C:\Program Files (x86)\LuaRocks\lua\?\init.lua;%LUA_DIR%\share\lua\5.1\?.lua;%LUA_DIR%\share\lua\5.1\?\init.lua;%LUA_DIR%
\lib\luarocks\rocks\cwrap\scm-1\lua\torchcwrap.lua
红字现在不配,安装torch时配置
LUA_CPATH=F:\MinGW\usr\local\lua-5.1.5\lib\lua\5.1\?.dll
Path里面加上luarocks的位置
重新打开命令行,luarocks help验证luarocks是否安装成功
如果你没有lua基础
建议安装
$ luarocks install luafilesystem
$ lua -l lfs #验证是否安装成功
或者
$ lua
$ lua>require "lfs" #验证是否安装成功,
这个方式验证很重要,可以验证后需要安装是否缺少什么包
和
$ luarocks install luasocket
$ lua -l socket #验证是否安装成功
$ lua
$ lua>require "socket" #验证是否安装成功
2 Windows安装Lua教程参考https://github.com/torch/torch7/pull/287
以下是两种torch包的安装方式,如果你用第一种方式安装不能在lua里面
1〉LuaRocks安装torch/cwrap
$ luarocks --server=https://raw.github.com/torch/rocks/master install cwrap
应该不会有什么问题
$ lua
$ lua>require "cwrap" #验证是否安装成功
2〉Mingw安装torch/paths
下载 paths-master https://codeload.github.com/torch/paths/zip/master
解压后并MinGW编译
$ cmake -E make_directory build #直接建这个目录页可以
$ cd build
$ cmake ..
-G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DLUALIB=lua51.dll -DLUA_INCDIR=%LUA_INCDIR% -DLUA_LIBDIR=%LUA_INCDIR%
-DLUADIR="
%LUA_DIR%
/lib/luarocks/rocks/paths/scm-1/lua" -
DLIBDIR="
%LUA_DIR%
/lib/luarocks/rocks/paths/scm-1/lib" -DCMAKE_INSTALL_PREFIX="
%LUA_DIR%/lib/luarocks/rocks/paths/scm-1"
红字部分配置是为了和安装包里面rocks\ paths-scm-1.rockspec里面说明一致
绿字可以更换为"MinGW Makefiles"
蓝字是Lua安装目录
$ make
$ make install
3 安装torch7
1> 下载torch7 https://codeload.github.com/torch/torch7/zip/master
2>解压编译安装
$ cmake -E make_directory build #直接建这个目录页可以
$ cd build
$ cmake .. -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DLUALIB=lua51.dll -DLUA_INCDIR=%LUA_INCDIR% -DLUA_LIBDIR=%LUA_LIBDIR%
-DLUA="%LUA_DIR%/bin/lua"
$ make #这一部分问题比较多:
1.如果提示local can only be used in a function 说明没有指定lua.exe的位置,即绿字部分
2.如果提示require "torchcwrap" 找不到,则在torch包下,找到torchcwrap.lua并配置到LUA_PATH环境变量下,如上所示
$ make install
安装完成后把libluaT.dll,libTH.dll,libtorch.dll都拷贝到bin目录下(或者拷贝到LUA_CPATH下,没试)
验证是否成功
$ lua -l torch
或者
$ lua
$ lua>require "torch" #验证是否安装成功