luvi-luvit的lua文件源码启动流程

luvi加载miniz_zip包的流程

  • 编译luvit和运行流程
    • 原因探究

编译luvit和运行流程

使用lit工具编译luvit包,然后导出luvit源码的zip包,使用cat luvit.zip >> luvi,
然后再次执行./luvi,此时原本还是luvi功能的可执行程序,执行后发现是从Luvit源码的main.lua文件开始运行。

原因探究

./luvi执行后,会从luvi可执行文件末尾开始向前遍历,找到miniz包的起始标志的第一个位置。然后开始解压执行。

找到miniz包的函数为:luvi/src/lminiz.c文件中的mz_zip_reader_read_central_dir函数,断点打在此处,然后调试便可以知道流程。
之后miniz解压该包,载入package,并运行运行main.lua文件

你可能感兴趣的:(lua)