Visual studio 2010 要求通过Windows上的Luarock安装socket.core文件上的luasocket时出错
系统配置:Visual studio 2010 要求通过Windows上的Luarock安装socket.core文件上的luasocket时出错,visual-studio-2010,lua,luasocket,luarocks,Visual Studio 2010,Lua,Luasocket,Luarocks,系统配置: OS: Windows 7 x64 lua -v Lua 5.1.4 luarocks -v 2.2.0beta1 luarocks list luasocket 3.0rc1-1 (installed) - C:/Program Files (x86)/LuaRocks/systree/lib/luarocks/rocks luarocks show luasocket LuaSocket 3.0rc1-1 - Network support fo
OS: Windows 7 x64
lua -v
Lua 5.1.4
luarocks -v
2.2.0beta1
luarocks list
luasocket
3.0rc1-1 (installed) - C:/Program Files (x86)/LuaRocks/systree/lib/luarocks/rocks
luarocks show luasocket
LuaSocket 3.0rc1-1 - Network support for the Lua language
LuaSocket is a Lua extension library that is composed by two parts: a C core
that provides support for the TCP and UDP transport layers, and a set of Lua
modules that add support for functionality commonly needed by applications that
deal with the Internet.
License: MIT
Homepage: http://luaforge.net/projects/luasocket/
Installed in: C:\Program Files (x86)\LuaRocks\systree
Modules:
ltn12 (C:\Program Files (x86)\LuaRocks\systree/share/lua/5.1/ltn12.lua)
mime (C:\Program Files (x86)\LuaRocks\systree/share/lua/5.1/mime.lua)
mime.core (C:\Program Files (x86)\LuaRocks\systree/lib/lua/5.1/mime/core.dll)
socket (C:\Program Files (x86)\LuaRocks\systree/share/lua/5.1/socket.lua)
socket.core (C:\Program Files (x86)\LuaRocks\systree/lib/lua/5.1/socket/core.dll)
socket.ftp (C:\Program Files (x86)\LuaRocks\systree/share/lua/5.1/socket/ftp.lua)
socket.headers (C:\Program Files (x86)\LuaRocks\systree/share/lua/5.1/socket/headers.lua)
socket.http (C:\Program Files (x86)\LuaRocks\systree/share/lua/5.1/socket/http.lua)
socket.smtp (C:\Program Files (x86)\LuaRocks\systree/share/lua/5.1/socket/smtp.lua)
socket.tp (C:\Program Files (x86)\LuaRocks\systree/share/lua/5.1/socket/tp.lua)
socket.url (C:\Program Files (x86)\LuaRocks\systree/share/lua/5.1/socket/url.lua)
luarocks path
SET LUA_PATH=C:\Users\Zequez\AppData\Roaming/luarocks/share/lua/5.1/?.lua;
C:\Users\Zequez\AppData\Roaming/luarocks/share/lua/5.1/?/init.lua;
C:\Program Files (x86)\LuaRocks\systree/share/lua/5.1/?.lua;
C:\Program Files (x86)\LuaRocks\systree/share/lua/5.1/?/init.lua;
C:\Program Files (x86)\LuaRocks\2.2\lua\?.lua;
C:\Program Files (x86)\LuaRocks\2.2\lua\?\init.lua;
SET LUA_CPATH=C:\Users\Zequez\AppData\Roaming/luarocks/lib/lua/5.1/?.dll;
C:\Program Files (x86)\LuaRocks\systree/lib/lua/5.1/?.dll;
.\?.dll;
.\?51.dll;
C:\ProgramFiles (x86)\LuaRocks\2.2\?.dll;
C:\Program Files (x86)\LuaRocks\2.2\?51.dll;
C:\Program Files (x86)\LuaRocks\2.2\clibs\?.dll;
C:\Program Files (x86)\LuaRocks\2.2\clibs\?51.dll;
C:\Program Files (x86)\LuaRocks\2.2\loadall.dll;
C:\Program Files (x86)\LuaRocks\2.2\clibs\loadall.dll
SET LUA_CPATH=C:\Users\Zequez\AppData\Roaming/luarocks/lib/lua/5.1/?.dll;
C:\Program Files (x86)\LuaRocks\systree/lib/lua/5.1/?.dll;
.\?.dll;
.\?51.dll;
C:\Program Files (x86)\LuaRocks\2.2\?.dll;
C:\Program Files (x86)\LuaRocks\2.2\?51.dll;
C:\Program Files (x86)\LuaRocks\2.2\clibs\?.dll;
C:\Program Files (x86)\LuaRocks\2.2\clibs\?51.dll;
C:\Program Files (x86)\LuaRocks\2.2\loadall.dll;
C:\Program Files (x86)\LuaRocks\2.2\clibs\loadall.dll
我是Lua的新手,不习惯在Windows上编译东西
无论如何,luasocket
的安装完成了,没有出现任何错误,使用MS Visual Studio 2010编译了所有内容。必须从VisualStudio命令提示符下运行luarock
,但最终还是成功了
但是,当我试图要求它时,我就犯了一个错误
> require 'socket'
error loading module 'socket.core' from file 'C:\Program Files (x86)\LuaRocks\systree/lib/lua/5.1/socket\core.dll':
C:\Program Files (x86)\LuaRocks\systree/lib/lua/5.1/socket\core.dll:1: '=' expected near 'É'
stack traceback:
[C]: ?
[C]: in function 'require'
...iles (x86)\LuaRocks\systree/share/lua/5.1/socket.lua:12: in main chunk
[C]: in function 'require'
stdin:1: in main chunk
[C]: ?
使用require'luarocks.loader'
也没有帮助,同样的错误。我想我无论如何都不需要它,因为我已经用luarocks
路径设置了LUA_路径
我搜索了几个小时没有结果。我还尝试安装旧版本的Luasockets,但它需要Visual Studio 2003,因此我希望避免这种情况。看起来Lua正在尝试将DLL解析为Lua代码。如果
package.path
(或LUA\u path
环境变量)包含?.dll
路径模板,则可能发生这种情况。请从package.path
中删除所有?.dll
模板,并将它们放入package.cpath
(或LUA\u cpath
环境变量)