【问题标题】:Permission Denied When Building in Sublime Text 3在 Sublime Text 3 中构建时权限被拒绝
【发布时间】:2019-08-31 09:07:01
【问题描述】:

我正在尝试在带有 Sublime Text 3 的 Windows 10 上使用 Lua。当我尝试构建和运行脚本时,我收到以下错误:

lua: 无法打开 C:\Program Files (x86)\Lua\5.1: Permission denied

我已为该文件夹添加了完全权限。

我只是试图运行一个简单的打印语句: print("hello")

预期结果是结果窗口中的hello 输出。

【问题讨论】:

  • 您是制作自定义构建系统还是使用默认构建系统?
  • 没有自定义。全部开箱即用。 Windows 是最近 30 天内相对较新的。 Sublime Text 3 安装是基础安装;它已注册。 Lua for Windows 安装也是基本安装。

标签: windows lua sublimetext3


【解决方案1】:

Sublime 附带的用于执行 Lua 程序的构建系统如下所示:

{
    "cmd": ["lua", "$file"],
    "file_regex": "^(?:lua:)?[\t ](...*?):([0-9]*):?([0-9]*)",
    "selector": "source.lua"
}

这里的重要方面是要执行的命令是lua,第一个参数是当前文件的名称。从您看到的错误消息中,Lua 看起来像是在尝试执行目录而不是程序名称。或者如果你愿意,如果这是一个目录权限问题,我希望它告诉你它无法访问的文件的名称,而不是文件所在的文件夹。

该文件夹的名称是lua 本身的安装位置也很可疑,并且错误消息似乎表明它是lua 本身产生错误。

基于所有这些,我的猜测是您在执行命令之前没有保存 Lua 脚本。这将导致$file 扩展为一个空字符串,使第一个参数为空。由于构建使用cmd,因此内部窗口被专门告知运行名为lua 的程序,其第一个参数为空字符串。

看起来解释器首先尝试将当前工作目录放到文件名上然后执行它,由于文件名是空的,它最终尝试执行一个目录,这就是权限问题的来源。

一旦你第一次保存文件并且它有一个名字,只要选中Tools > Save all on build,Sublime 会在你每次运行构建时自动重新保存它;不过,该选项不会提示您保存还没有名称的全新文件。

【讨论】:

  • 完美!谢谢你的帮助!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-08
  • 1970-01-01
相关资源
最近更新 更多