Lua';的`Package.config`中的最后几行是什么意思? [英] What do the last lines in Lua's `package.config` mean?
本文介绍了Lua';的`Package.config`中的最后几行是什么意思?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Lua specs say about package.config
(编号由我添加):
- 第一行是目录分隔符字符串。Windows的默认设置为"
",所有其他系统的默认设置为"
/
"。- 第二行是分隔路径中模板的字符。默认为"
;
"。- 第三行是标记模板中替换点的字符串。默认为"
?
"。- 第四行是一个字符串,在Windows的路径中,它被可执行文件的目录替换。默认为"
!
"。- 第五行是一个标记,用于在构建
luaopen_
函数名时忽略其前面的所有文本。默认为"-
"。
我的释义:
- 绝对清楚(Windows/其他系统的例子让它变得非常简单)
- 路径字符串中可以有多个路径。它们由此符号分隔(默认情况下为
;
)。 - 只要Lua在路径字符串中找到此字符(默认情况下为
?
),它就会将其替换为提供给require
或package.searchpath
函数的模块名称,并检查该文件是否存在。
到目前为止,一切顺利,但最后两行我还不完全清楚。
- 为什么说在Windows中的路径中?这是否意味着在其他平台上,这没有任何意义?如果是,为什么?
我花了一段时间才明白这一点,但最终another part of the specs给了我一个提示:
此C函数的名称是字符串"
luaopen_
",其中每个点由下划线替换。此外,如果模块名称有连字符,则删除其直到(包括)第一个连字符的前缀。例如,如果模块名称为a.v1-b.c
,则函数名称将为luaopen_b_c
。那么,此符号(默认情况下为
-
)是否旨在使不同版本的库同时可用 ;–可能带有指向最新版本的无前缀符号链接,以便可以在两个路径(即,在两个模块名称下)访问相同的库,但只有一个C符号名称?
推荐答案
4:应用程序在系统范围内安装库;但是,对于Windows,库可以安装在当前目录中。
5:我认为这背后的原因是版本控制和项目分叉。
这篇关于Lua';的`Package.config`中的最后几行是什么意思?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文