2

我正在尝试将一些 lua 脚本添加到用 C 编写的固件项目中。目前,该脚本是一个配置表,我试图从中获取num变量的值,所有这些都使用 C API 中的main.c文件。

我正在我的项目中测试此代码,包括 Lua for Desktop 的标准源文件(我已阅读有关eLua的信息,但我不需要在 Lua 中实现完整代码,我需要让 Lua 和 C 文件共存我的项目)。

当我使用 gcc 编译器在计算机上测试它时它工作正常,但是当我尝试使用交叉编译器将相同的想法传递给我的微控制器时,它会编译并且没有错误,但是从lua 文件,因为变量valueFromLua总是等于 1。

我的项目文件夹树具有以下结构:

  • 资源
    • 主程序
  • 工具
    • lua
      • 脚本
        • config_table.lua

config_table.lua

config_table = {
    num = 10
} 

主程序

  lua_State *L = luaL_newstate();
    uint8_t valueFromLua;

    if(luaL_dofile(L, "./Tools/lua/scripts/config_table.lua") == LUA_OK)
    {
        lua_getglobal(L, "config_table");
        if(lua_istable(L, -1))
        {
            lua_getfield(L, -1, "num");
            valueFromLua = lua_tointeger(L, -1);
        }
    }
    else
    {
        valueFromLua = 1;
    }

非常感谢您的意见,在此先感谢。

4

0 回答 0