gpt4 book ai didi

Lua 在 PowerPC/LynxOS 平台上的表现很奇怪,为什么?

转载 作者:行者123 更新时间:2023-12-04 12:48:19 25 4
gpt4 key购买 nike

我选择 Lua 5.1 作为我的应用程序的嵌入式脚本语言,但是
当我将应用程序移植到在 PowerPC 上运行 LynxOS 的旧平台时,
事情似乎出了问题。

我在 PC 上运行了以下代码,一切看起来都不错:

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 C++ 6.0) 我期待“vfoo = 5.000000”

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

那么 Lua 在 LynxOS/PowerPC 上发生了什么?我想知道是否有一些配置
对于 big-endian 机器,我在“luaconf.h”中寻找它但一无所获。我也尝试了配置项“LUA_USE_POSIX”但没有帮助。

我知道这不是 lua 编程的典型平台。但是,欢迎提出任何建议并表示赞赏。

最佳答案

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

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

不过我对你有感觉。 lua 引擎是一个巨大的黑匣子,当它的内部出现问题时,它会令人困惑地单步调试和调试。在我的情况下,这通常是编译器/clib 的错,但这并没有让两个人相处起来更容易。

关于Lua 在 PowerPC/LynxOS 平台上的表现很奇怪,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15738378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com