# my_lua_train **Repository Path**: linux2014/my_lua_train ## Basic Information - **Project Name**: my_lua_train - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-21 - **Last Updated**: 2025-01-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README --- ### lua编程练习: 探究lua源码; --- ### lua教程 https://blog.csdn.net/qq_19749625/category_12691570.html https://blog.csdn.net/jimn2000/category_12772261.html https://cloud.tencent.com/developer/article/2143267 ### 参考: https://baijiahao.baidu.com/s?id=1764309223944766023&wfr=spider&for=pc https://www.runoob.com/lua/lua-basic-syntax.html https://cloud.tencent.com/developer/article/2143267 https://blog.csdn.net/jimn2000/article/details/141910251 https://zhuanlan.zhihu.com/p/702891176 https://blog.csdn.net/qq_19749625/article/details/139427384 ### 优质lua项目合集: https://gitcode.com/gh_mirrors/lua1/lua --- --- ### require: 对于自定义的模块,模块文件不是放在哪个文件目录都行,函数 require 有它自己的文件路径加载策略,它会尝试从 Lua 文件或 C 程序库中加载模块。 require 用于搜索 Lua 文件的路径是存放在全局变量 package.path 中,当 Lua 启动后,会以环境变量 LUA_PATH 的值来初始这个环境变量。如果没有找到该环境变量,则使用一个编译时定义的默认路径来初始化。 当然,如果没有 LUA_PATH 这个环境变量,也可以自定义设置,在当前用户根目录下打开 .profile 文件(没有则创建,打开 .bashrc 文件也可以),例如把 "~/lua/" 路径加入 LUA_PATH 环境变量里: #LUA_PATH export LUA_PATH="~/lua/?.lua;;" 文件路径以 ";" 号分隔,最后的 2 个 ";;" 表示新加的路径后面加上原来的默认路径。 接着,更新环境变量参数,使之立即生效。 source ~/.profile 这时假设 package.path 的值是: /Users/dengjoe/lua/?.lua;./?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua 那么调用 require("module") 时就会尝试打开以下文件目录去搜索目标。 /Users/dengjoe/lua/module.lua; ./module.lua /usr/local/share/lua/5.1/module.lua /usr/local/share/lua/5.1/module/init.lua /usr/local/lib/lua/5.1/module.lua /usr/local/lib/lua/5.1/module/init.lua 如果找过目标文件,则会调用 package.loadfile 来加载模块。否则,就会去找 C 程序库。 搜索的文件路径是从全局变量 package.cpath 获取,而这个变量则是通过环境变量 LUA_CPATH 来初始。 搜索的策略跟上面的一样,只不过现在换成搜索的是 so 或 dll 类型的文件。如果找得到,那么 require 就会通过 package.loadlib 来加载它。 ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/chenjiniu/article/details/144369917 --- ---