【问题标题】:How do I install luac.cross on a Mac?如何在 Mac 上安装 luac.cross?
【发布时间】:2019-07-16 01:25:49
【问题描述】:

NodeMCU documentation 状态

NodeMCU 固件构建现在会自动生成 luac.cross 映像 作为固件根目录中的标准;这可以用来 在开发机器上编译和语法检查 Lua 源代码 在 ESP8266 上的 NodeMCU Lua 下执行。

我从哪里获得 luac.cross 以及如何安装它?

我是否在 Mac 上从源代码构建 NodeMCU 固件,并且 luac.cross 作为该过程的一部分创建?我一直在使用云服务来创建自定义固件。 luac.cross 是否可以通过云构建获得?

直接的 lua 代码使 MakerFocus NodeMCU 板不堪重负,导致内存不足问题导致运行时恐慌。希望编译后的代码会减少 RAM 需求。

【问题讨论】:

    标签: lua nodemcu


    【解决方案1】:

    我从哪里获得 luac.cross 以及如何安装它?

    您在您发布的文档的引用中给出了答案。特别是这个

    NodeMCU 固件构建现在会自动生成 luac.cross 映像...

    因此,如果您在您的平台上手动构建 NodeMCU,构建过程还将为您的平台创建一个lua.cross。这就是您无法下载或安装 lua.cross 的原因 - 它必须适合您的平台,即操作系统等。

    接下来的逻辑问题是:如何在 macOS 上手动构建 NodeMCU?

    当我在 macOS 上使用Docker image(来自您的真实)构建时,我不知道答案。运行 Docker 构建会在固件根目录中创建一个 luac.cross。但是,由于 macOS 在此设置中只是 Docker 的主机操作系统,luac.cross 适用于 Linux,而不是 macOS 的原生操作系统。要使用它,您将再次启动 Docker 容器并在其中运行 bash 以获取 shell 来执行 Lua 交叉编译:docker run --rm -ti -vpwd:/opt/nodemcu-firmware marcelstoer/nodemcu-build bash

    直接的 lua 代码使 MakerFocus NodeMCU 板不堪重负,导致内存不足问题导致运行时恐慌。希望编译后的代码能够减少 RAM 需求。

    我不想让你幻想破灭,但如果我不得不打赌,我预计节省的资金不会大到足以产生预期的结果。由于您已经开始阅读文档,我想向您指出相关的常见问题解答:How is NodeMCU Lua different to standard Lua?Techniques for Reducing RAM

    也许使用LFS 会是你的救命稻草。

    【讨论】:

    • 我一直在阅读 LFS。文档说调用node.flashindex(my.img) 将加载图像并安排重启。我是否在 init.lua 文件中调用它,以便在设备重新启动时重新加载图像?是工作流程 1. 创建 Img 2. 加载 Img。 3. 上传执行了node.flashindex()的init.lua?这不会造成无限循环吗?我错过了什么?
    • 没有足够的文档,我同意。例如,请参阅github.com/nodemcu/nodemcu-firmware/issues/2656
    【解决方案2】:

    如果您想在任何平台上都使用此工具 - 您可以使用我的 API 来构建它:

    curl -d @yourscript.lua -X POST https://nodemcu-luacross-run-64l7ehzjta-uc.a.run.app/compile > output.luac
    

    【讨论】:

      猜你喜欢
      • 2019-10-13
      • 2016-04-13
      • 2019-01-04
      • 2021-12-31
      • 2013-12-05
      • 2019-11-02
      • 2014-05-01
      • 2015-11-22
      • 2011-05-24
      相关资源
      最近更新 更多