如何获取安装了lua的全局路径

我正在编写一个 Lua 应用程序,其中将包含一个相对路径,在这个路径下,无论 Lua 安装在哪里,它都将把一个文件复制到 clibs 文件夹中,例如:

getPath = getWhereLuaInstalled(可能是 C:\program file(x86)\lua\5.1 或 c:\lua\5.1..)

使用 package.path 将为我返回所有路径,Lua 将搜索以查找可执行文件。有什么想法吗?

谢谢。

点赞
用户868247
用户868247

看起来你是在为Windows机器设计这个程序(.dll和你的路径提示表明了这一点),所以这是一个可能的解决方案。

local io = require "io"

function getWhereLuaInstalled()
  local handle = io.popen('where lua')
  local path = handle:read('*a'):match("(.*\\)")
  handle:close()
  return path
end

这可以很容易地修改为Linux系统,只需将where lua替换为which lua即可。

2014-10-08 18:39:37
用户312586
用户312586

通常情况下,您只需要使用一个点(“.”)来表示当前路径。您可以在此基础上添加相对路径:./my/relative/path

2014-10-09 09:45:25