Windows系统下Sublime Text3构建Lua项目报错求助
你遇到的这个问题挺常见的——明明系统里装了Lua,CMD里能正常跑,但Sublime就是找不到可执行文件。核心原因一般是Sublime没正确读取到系统PATH,或者构建配置的命令写法不够适配Windows环境。下面给你几个靠谱的解决办法:
1. 直接指定Lua可执行文件的完整路径
既然CMD里能正常运行,先打开CMD输入where lua,找到lua.exe的绝对路径(比如你PATH里的C:\Progra~1\Lua\5.3.4_64\lua.exe)。然后修改你的lua.sublime_build文件,把cmd里的lua换成这个完整路径:
{ "cmd": ["C:\\Progra~1\\Lua\\5.3.4_64\\lua.exe", "$file"], "file_regex": "^(?:lua:)?[\t ](...*?):([0-9]*):?([0-9]*)", "selector": "source.lua" }
注意路径里的反斜杠要写成双反斜杠,或者用正斜杠/替代也可以。
2. 重启Sublime加载最新的PATH
Sublime启动时会读取当时的系统PATH,如果是你先装了Lua、加了PATH,之后才打开的Sublime,那它根本没读到新的PATH配置。完全关闭Sublime(包括后台挂着的进程),再重新打开,应该就能识别到Lua了。
3. 确认系统PATH配置真的生效
虽然你说CMD里能运行,但还是可以再验证一下:打开新的CMD窗口,输入lua -v,如果能显示Lua的版本号,说明PATH没问题;如果不行,就得检查一下C:\Progra~1\Lua\5.3.4_64这个路径是不是真的在系统PATH里,而且路径下确实有lua.exe文件。
4. 改用shell_cmd替代cmd
Windows下,Sublime的cmd有时候不会通过系统shell执行命令,导致PATH读取有问题。换成shell_cmd就能解决这个问题,修改后的配置如下:
{ "shell_cmd": "lua \"$file\"", "file_regex": "^(?:lua:)?[\t ](...*?):([0-9]*):?([0-9]*)", "selector": "source.lua" }
这样Sublime会调用系统的cmd.exe来执行Lua命令,能更好地识别PATH里的可执行文件。
推荐先试试方法1或者方法4,这两个通常能快速解决问题。如果还是不行,再排查PATH和重启Sublime。
内容的提问来源于stack exchange,提问作者uninformed

