首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lua在PowerPC/LynxOS平台上行为奇怪,为什么?

Lua在PowerPC/LynxOS平台上行为奇怪,为什么?
EN

Stack Overflow用户
提问于 2013-04-01 13:57:00
回答 1查看 302关注 0票数 7

我选择Lua5.1作为我的应用程序的嵌入式脚本语言,但是当我将应用程序移植到一个在PowerPC上运行LynxOS的遗留平台时,似乎出了问题。

我在PC上运行了下面的代码,一切看起来都很好:

代码语言:javascript
复制
void test_lua()
{
  const char *code = "foo = 5\n";
  double vfoo=0;
  lua_State *L = luaL_newstate();

  (void)luaL_loadbuffer(L, code, strlen(code), "line");
  (void)lua_pcall (L, 0, 0, 0);

  lua_getglobal(L, "foo");
  vfoo = lua_tonumber(L, -1);

  lua_close(L);

  myTrace("vfoo = %f", vfoo);
  for(;;);
}

对于PC (Visual vfoo 6.0),我得到了期望的“C++ = 5.000000”

但是使用LynxOS/PowerPC,我得到了"vfoo = 0.000000“。

那么,Lua在LynxOS/PowerPC上发生了什么?我想知道是否有一些大端机器的配置,我在"luaconf.h“中查找了它,但什么也没有找到。我也尝试了配置项"LUA_USE_POSIX“,但没有帮助。

我知道这不是一个典型的lua编程平台。然而,任何建议都是受欢迎的,并受到赞赏。

EN

回答 1

Stack Overflow用户

发布于 2013-11-24 16:39:14

Endian-ness不应该影响lua代码的操作。我已经移植到了几个非Win32的平台,并且我遇到过用于将64位双精度型转换为整数的LUA_IEEE754TRICK并不总是有效,而是在默认情况下启用的。尝试取消定义luaconf.h中的LUA_IEEE754TRICK宏。

我还遇到过浮点printf/scanf函数损坏或不可靠的lua_number2str,我必须编写自己的自定义版本clibs。

不过,我很同情你。lua引擎是一个很大的黑盒子,当它的内部出现问题时,它很难单步执行和调试。在我的例子中,这通常是编译器/clib的错误,但这并不会使两者更容易相处。

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

https://stackoverflow.com/questions/15738378

复制
相关文章

相似问题

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