我正在尝试编写一个简单的Lua脚本,时间函数给我一个“加载模块”错误

时间:2015-12-27 01:53:05

标签: linux sockets ubuntu lua

我正在尝试学习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。

1 个答案:

答案 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。