【问题标题】:Run Wax on 64-bit iOS with arm64 Architecture在带有 arm64 架构的 64 位 iOS 上运行 Wax
【发布时间】:2014-12-16 17:28:48
【问题描述】:

我被这个问题困扰了很多天。

Wax(https://github.com/probablycorey/wax只支持armv7和armv7s架构,但我的项目使用的是arm64架构。

错误消息是“打开蜡脚本时出错:加载蜡标准库:预编译块中的标头错误”。

所以我猜问题出在wax_stdlib.h 中。但是这个文件是stdlib文件中lua脚本的预编译结果,我不知道如何预编译64位的lua脚本。

我该如何解决?

【问题讨论】:

    标签: ios lua arm64 iphone-wax iphone-64bit


    【解决方案1】:

    因为你的项目使用的是arm64架构,而wax_stdlib.h是32位预编译的...

    所以,你只需要预编译 64 位的wax 标准库。

    首先,你需要下载lua源码,cd到src目录,做成64位,然后安装

    那么你应该修改 luac.lua 文件

    -- 64 b = string.sub(b, 1, x - 6 - 4).."\0"..string.sub(b, y + 2, y + 5) -- WTF 这样做吗?

    -- 32 -- b = string.sub(b, 1, x - 6).."\0"..string.sub(b, y + 2, y + 5) -- WTF 这样做吗?

    -- 64 断言(f:write(string.rep("\0", 3 * 8)))

    -- 32 --assert(f:write(string.rep("\0", 12)))

    并运行 compile-stdlib.sh...

    如果你这样做,它可以工作,但我真的建议你不要在64位使用蜡,因为它不支持64位..你会发现更多问题

    【讨论】:

      【解决方案2】:

      改用 JSPatch 可能是个好方法。

      【讨论】:

        【解决方案3】:

        这里有一个蜡叉,其中包含 ARM64(和 x64)的更新 - 尚不清楚它的测试效果如何,但它可能有用。

        https://github.com/felipejfc/wax_x86-64

        【讨论】:

        • 我已对其进行了修改,使其无论平台如何都能正常工作,因为我已将低级别的东西替换为高级的东西。随意测试它并指出任何问题,它适用于 x64 和 arm64 ......你应该更加小心 cmets 和 votes
        猜你喜欢
        • 2015-08-27
        • 2018-09-06
        • 2020-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-25
        • 1970-01-01
        • 2014-06-11
        相关资源
        最近更新 更多