你如何在ESP8266板上编译Lua代码?

问题描述 投票:0回答:2

node模块有一个名为compile的方法,它编译代码并创建.lc文件。

我是否使用像nodemcu-tool这样的工具通过terminal参数连接到电路板,并执行node.compile('myfile.lua')命令来创建.lc文件?

如果init.lua在重置时被编译为init.lc,那么董事会会执行编译后的代码吗?

lua nodemcu
2个回答
1
投票

如果init.lua在重置时被编译为init.lc,那么董事会会执行编译后的代码吗?

是的,根据我们的FAQ

请注意,如果您使用require("XXX")加载代码,那么这将自动搜索XXX.lc然后XXX.lua,因此您不需要包含条件逻辑来加载字节码版本(如果存在),否则将回退到源版本。

但是,请注意,您的init.lua预计会相当小,实际应用程序会分成动态加载的单独文件。

(如何)我是否使用像nodemcu-tool这样的工具通过terminal参数连接到电路板,并执行node.compile('myfile.lua')命令来创建.lc文件?

根据command reference

$ nodemcu-tool upload --port=/dev/ttyUSB0 myfile.lua --compile


1
投票

你如何在ESP8266板上编译lua代码?

这取决于您使用的工具。我使用的工作流程是:

  1. 使用nodemcu-uploader将Lua代码上传到NodeMCU
  2. 使用picocom连接到NodeMCU
  3. 使用node.compile()编译文件
  4. (可选)使用nodemcu-uploader再次下载文件

不同的工具可能会稍微改变所涉及的步骤,但总体而言,这个想法将保持不变:

上传 - >编译( - >下载)

如果在复位时init.lua被编译为init.lc,那么板会执行编译后的代码吗?

试试吧 ;)

如果它不起作用,你总是可以写一个需要init.lua的单行init.lc;一旦你的芯片启动并运行,它就不会影响你的性能。

或者您可以将编译后的文件重命名为init.lua,它也应该可以工作。

但请记住,正如文档所说:

[...]编译是RAM密集型的,因此你会发现你需要打破你的应用程序[...]

© www.soinside.com 2019 - 2024. All rights reserved.