首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨架构luac输出

跨架构luac输出
EN

Stack Overflow用户
提问于 2013-09-21 05:17:06
回答 2查看 699关注 0票数 9

我正在开发一个所谓的墨盒,用于基于地理位置的WheriGo (http://wherigo.com)游戏。用于这些磁带盒的体系结构是32位和高字节顺序。但是,我的luac将创建64位和小端的块。

虽然有针对WheriGo的在线编译服务,但我更希望能够为自己生成合适的二进制格式。尤其是,因为有一些东西我宁愿在由loadstring()加载的已剥离的块中保持一点模糊,而不是拥有完整的调试信息。

所以我的问题是:生成一个lua工具链有多难,它为一个不同的架构生成字节码,而不是它运行的架构?

EN

回答 2

Stack Overflow用户

发布于 2013-12-06 08:34:15

您可以始终将32位大端计算机作为VM运行,例如Aurélien的prebuilt images for Debian/mips (notes)。这将是缓慢的,但工作,并可以很容易地自动化。(从squeeze升级到至少喘息,然后获得最新的Lua。)

我在…上运行过足够多的虚拟机它很慢,但我认为它是批处理:我启动一个作业(apt或编译),然后偶尔(或者:第二天)查看它是否完成。大多数情况下,这样做的效果很好;有些东西在仿真中当然不能正常工作(例如,由于仿真器错误或差异),但要获得高端32位Lua,这可能会起作用)。

建议阅读:lua bytecode portabilitymiddle-endian doubles on ARM (都在lua邮件列表中)-由于PocketPC机器大多是ARM,你可能会遇到这种情况。最好检查实际的Wherigo墨盒,看看他们使用…的设置是什么

这些帖子的要点是:字节顺序、sizeof(int)sizeof(size_t)sizeof(Instruction)sizeof(lua_Number)lua_Number类型必须相同,字节码才能跨体系结构兼容( Luiz Henrique de Figueiredo说),并且中端浮点(单字节和双字节)确实存在于野外(steve donovan和Dimiter 'malkia‘Stanev)。

如果你做了,一定要告诉我-我很感兴趣,因为我自己也是一个地理探险家(尽管我需要弄清楚如何玩弹药盒,但我的平台上没有玩家)。

票数 1
EN

Stack Overflow用户

发布于 2015-09-04 03:45:29

如果两台机器的浮点表示是兼容的,那么这应该只是对ldump.c和lundump.c的修改

注意确保类型(如long )的大小相同。我已经为x86,x64上的整数lua做了这个

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18926014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档