【问题标题】:Why This Lua's Program Didn't Compile Correctly? (EEPro)为什么这个 Lua 的程序没有正确编译? (EEPro)
【发布时间】:2013-06-20 05:33:06
【问题描述】:

首先我想澄清一下,我是一个使用 Lua 的新手。 我的目标是使用下面发布的代码创建一个 Java 应用程序。 我有一台联想 Y560,它有一个 Windows 7 x64 操作系统。为此,我下载了 LuaForWindows_v5.1.4-46。 正如我所说,我的目标是为具有 Symbian OS S40 的移动设备创建 Java 应用程序,我的想法是将 Lua 中的这个程序转换为 Java。但在此过程中,我怀疑有人怀疑。 如果我问错了这个问题,我深表歉意。

EEPro for Nspire on Lua

试图编译这个 Lua 的程序,我得到了以下错误:

> > lua -e "io.stdout:setvbuf 'no'" "EEPro.big.lua" 
> > lua: proyecto.big.lua:14: attempt to call field 'uchar' (a nil value)
> stack traceback:
proyecto.big.lua:14: in function 'utf8'
proyecto.big.lua:35: in main chunk
[C]: ?

退出代码:1

你能告诉我为什么会这样吗?

【问题讨论】:

  • 可能,这个 Lua 代码需要安装 Extended Standard Library(它似乎默认安装在编写此代码的本机系统上)。
  • 如何安装 LuaRocks?
  • 插入这些行后,我在第 1942 行的原始代码中出现错误。 >lua -e "io.stdout:setvbuf 'no'" "proyecto.big.lua" lua: proyecto.big.lua:1942: 尝试索引全局 'image' (一个 nil 值) 堆栈回溯: proyecto.big。 lua:1942: 在主块 [C]: ? >退出代码:1
  • 需要更多库。将本机 TI-Nspire 计算器程序移植到 Java 可能并不容易。 Lua 脚本只是程序的一部分。
  • 非常非常感谢 Egor,感谢您阅读并帮助我。未来我会继续努力。

标签: java compilation lua


【解决方案1】:

string.uchar可以这样实现(只需在EEPro.big.lua文件的开头插入这些行):

function string.uchar(c, ...)
    if c then
        local t, h, s = {}, 128, string.uchar(...)
        while c >= h do
            t[#t+1] = 128 + c%64
            c = math.floor(c/64)
            h = h > 32 and 32 or h/2
        end
        t[#t+1] = 256 - 2*h + c
        return s.char((table.unpack or unpack)(t)):reverse()..s
    else
        return ''
    end
end

【讨论】:

    猜你喜欢
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多