Wybieram Lua 5.1 jako wbudowany język skryptowy mojej aplikacji, ale po przeniesieniu aplikacji na starszą platformę uruchamia LynxOS na komputerze PowerPC, wszystko wygląda nie tak.Lua zachowuje się dziwnie na platformie PowerPC/LynxOS, dlaczego?
dostaję następujący kod uruchomić się na komputerze i wszystko wygląda dobrze:
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(;;);
}
z PC (Visual C++ 6.0) mam oczekując "vfoo = 5.000000"
Ale z lynxos/PowerPC I otrzymałem "vfoo = 0.000000".
Co się dzieje dla Lua na LynxOS/PowerPC? Zastanawiam się, czy istnieje kilka konfiguracji dla maszyny big-endian, szukałem go w "luaconf.h", ale nic nie znaleźć. Wypróbowałem również element konfiguracji "LUA_USE_POSIX", ale bez pomocy.
Wiem, że to nie jest typowa platforma do programowania lua. Jednak wszelkie sugestie są mile widziane i doceniane.
Kod wydaje się być prawidłowy. Proponuję sprawdzić wartości zwracane przez 'luaL_loadbuffer' i' lua_pcall' i wydrukować 'luaL_typename (L, -1)' po 'lua_getglobal'. – lhf
Istnieją zestawy testów Lua w . Spróbuj je uruchomić. Jeśli coś jest uszkodzone, niektóre testy powinny zakończyć się niepowodzeniem, może dać ci więcej informacji na temat tego, co jest uszkodzone. (Kod testowy jest gęsty i odkomentowany, ale informacja o wierszu assert powinna wystarczyć do odtworzenia tego, co się stało). –
nobody