我正在尝试学习Lua,我正在学习的教程中包含以下代码:
print("Welcome to")
print("THE GAME")
我有一些先前的编程经验,决定更进一步:
require "socket"
function sleep(sec)
socket.select(nil, nil, sec)
end
print("Welcome to.....")
sleep(1.25)
print("...")
sleep(1.25)
print("...")
sleep(1.25)
print("...")
sleep(1.25)
print("...")
sleep(1.25)
print("THE GAME")
出于某种原因,这个小小的添加立刻给了我一个错误:
dave@dave-[my laptop]:~/Code/Lua/Test$ lua main.lua
lua: error loading module 'socket.core' from file '/home/dave/torch/install/lib/lua/5.1/socket/core.so':
/home/dave/torch/install/lib/lua/5.1/socket/core.so: undefined symbol: lua_pcall
stack traceback:
[C]: in ?
[C]: in function 'require'
/home/dave/torch/install/share/lua/5.1/socket.lua:12: in main chunk
[C]: in function 'require'
main.lua:1: in main chunk
[C]: in ?
我不确定我是如何打破这么简单的事情。我安装Lua错了吗?我在Ubuntu 14.04上运行Lua 5.2.3。
答案 0 :(得分:2)
lib/lua/5.1/socket/core.so
我正在运行Lua 5.2.3
嗯,这是你的问题。 Lua与以前的“次要”版本不是二进制兼容的。因此,当您在Lua 5.2中执行时,无法加载为Lua 5.1构建的.so。
假设套接字库有5.2版本,则需要升级到它。如果你不能这样做,那么你需要降级到Lua 5.1。