我正在寫一個LUA應用程序將包含一個相對路徑,如果沒有安裝Lua事情就會將文件複製到文件夾clibs例如如何獲得安裝Lua的全局路徑
getPath = getWhereLuaInstalled (could be C:\program file(x86)\lua\5.1 or c:\lua\5.1..)
使用package.path將爲我返回lua將搜索查找可執行文件的所有路徑。 任何想法?
感謝
我正在寫一個LUA應用程序將包含一個相對路徑,如果沒有安裝Lua事情就會將文件複製到文件夾clibs例如如何獲得安裝Lua的全局路徑
getPath = getWhereLuaInstalled (could be C:\program file(x86)\lua\5.1 or c:\lua\5.1..)
使用package.path將爲我返回lua將搜索查找可執行文件的所有路徑。 任何想法?
感謝
它看起來像你這樣的設計對於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
這可以很容易通過用which lua
替換where lua
被修改爲Linux系統。
通常,您只需使用點("."
)。你可以添加相對路徑:./my/relative/path
爲什麼'package.cpath'你想要什麼?是的,它將包含多個路徑,但它們都應該工作。 – 2014-10-07 13:58:41
@EtanReisner嗨,以及我只需要一個路徑將文件複製到lua/5.1/clibs並將其用作默認路徑,這就是爲什麼我不需要所有這些文件 – jprbest 2014-10-07 14:03:48
解析出來,比如說從' package.cpath'。此外,Lua經常嵌入到另一個程序中,因此不會真正「自行安裝」。 – 2014-10-07 14:06:53