Lua'的`Package.config`中的最后几行是什么意思? [英] What do the last lines in Lua's `package.config` mean?

查看:18
本文介绍了Lua'的`Package.config`中的最后几行是什么意思?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Lua specs say about package.config(编号由我添加):

  1. 第一行是目录分隔符字符串。Windows的默认设置为"",所有其他系统的默认设置为"/"。
  2. 第二行是分隔路径中模板的字符。默认为";"。
  3. 第三行是标记模板中替换点的字符串。默认为"?"。
  4. 第四行是一个字符串,在Windows的路径中,它被可执行文件的目录替换。默认为"!"。
  5. 第五行是一个标记,用于在构建luaopen_函数名时忽略其前面的所有文本。默认为"-"。

我的释义:

  1. 绝对清楚(Windows/其他系统的例子让它变得非常简单)
  2. 路径字符串中可以有多个路径。它们由此符号分隔(默认情况下为;)。
  3. 只要Lua在路径字符串中找到此字符(默认情况下为?),它就会将其替换为提供给requirepackage.searchpath函数的模块名称,并检查该文件是否存在。

到目前为止,一切顺利,但最后两行我还不完全清楚。

  1. 为什么说在Windows中的路径中?这是否意味着在其他平台上,这没有任何意义?如果是,为什么?
  2. 我花了一段时间才明白这一点,但最终another part of the specs给了我一个提示:

    此C函数的名称是字符串"luaopen_",其中每个点由下划线替换。此外,如果模块名称有连字符,则删除其直到(包括)第一个连字符的前缀。例如,如果模块名称为a.v1-b.c,则函数名称将为luaopen_b_c

    那么,此符号(默认情况下为-)是否旨在使不同版本的库同时可用 ;–可能带有指向最新版本的无前缀符号链接,以便可以在两个路径(即,在两个模块名称下)访问相同的库,但只有一个C符号名称?

推荐答案

4:应用程序在系统范围内安装库;但是,对于Windows,库可以安装在当前目录中。

5:我认为这背后的原因是版本控制和项目分叉。

这篇关于Lua'的`Package.config`中的最后几行是什么意思?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆