Lua的`package.config`中的最后几行是什么意思?
2015-8-9 12:47:53
收藏:0
阅读:95
评论:1
Lua 规范中关于 package.config 的说明(带编号,由我添加):
- 第一行是目录分隔符的字符串。默认情况下,Windows 系统为
' \',其他系统为'/'`。- 第二行是在路径中分隔模板的字符。默认为 '
;'。- 第三行是在模板中标记替换点的字符串。默认为 '
?'。- 第四行是在 Windows 操作系统中路径中用于替换可执行文件的目录的字符串。默认为 '
!'。- 第五行是在构建
luaopen_函数名称时忽略其前面所有文本的标记。默认为 '-'。
我的释义:
- 非常清晰易懂(针对 Windows 和其他系统的示例使其易于理解)。
- 路径字符串中可以有多个路径。它们由此符号分隔(默认为 '
;')。 - Lua 会在路径字符串中的此字符(默认为 '
?')处用给定require或package.searchpath函数的模块名称替换它,并检查该文件是否存在。
到目前为止都很好,但是最后两行并不完全清晰。
- 为什么它说“在 Windows 路径中”?这是否意味着在其他平台上,这没有任何意义?如果是这样,为什么?
- 我花了一些时间才弄清楚,但最终 规范的另一部分 给了我一个提示:
这个 C 函数的名称是字符串 "
luaopen_" 与模块名称连接起来,其中每个点用下划线替换。此外,如果模块名称带有连字符,其前缀(包括第一个连字符)将被删除。例如,如果模块名称为a.v1-b.c,则函数名将是luaopen_b_c。
因此,此符号(默认为 '-')是否旨在使库的不同版本同时可用-潜在地使用一个未带前缀的符号链接到最新版本,以便在两个路径下(即在两个模块名称下)访问同一个库,但只使用一个 C 符号名称?
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
4: 对于 Linux,应用程序已经安装了全局的库,然而在 Windows 上,库可以被安装在当前目录中。
5: 我相信版本控制和项目分叉是这背后的原因。