Closed phy0292 closed 3 years ago
你可以自己编译一个
我只会使用VSCODE插件,没写过VSCODE插件,不知道如何下手。
d:\vcProjects\luamake>msvc_x86.bat '\Microsoft' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 系统找不到指定的路径。
d:\vcProjects\luamake>tools\ninja.exe -f ninja\msvc.ninja [0/5] cmd.exe /C cd tools\msvc && lua....3rd\bee.lua\build\msvc\msvc-init.ninja [1/5] cmd.exe /C cd 3rd/bee.lua && .....inja.exe -f build\msvc\msvc-init.ninja ninja: error: build\msvc\msvc-init.ninja:3: loading 'ninja/msvc.ninja': 系统找不 到指定的路径。
subninja ninja/msvc.ninja ^ near here FAILED: build/msvc/_/bee cmd.exe /C cd 3rd/bee.lua && ....\tools\ninja.exe -f build\msvc\msvc-init.ninja
ninja: build stopped: subcommand failed.
d:\vcProjects\luamake>
这是什么原因,编译不了,我的是vc2019
vs2019安装在D盘,应该没关系吧
我没有win7,所以只能靠你自己找答案了
Z:\Projects\luamake>msvc_x86.bat
Visual Studio 2019 Developer Command Prompt v16.8.6 Copyright (c) 2020 Microsoft Corporation
Z:\Projects\luamake>tools\ninja.exe -f ninja\msvc.ninja [0/5] cmd.exe /C cd tools\msvc && lua.exe init.lua ....\3rd\bee.lua\build\msvc\msvc-init.ninja [1/5] cmd.exe /C cd 3rd/bee.lua && ....\tools\ninja.exe -f build\msvc\msvc-init.ninja ninja: error: build\msvc\msvc-init.ninja:3: loading 'ninja/msvc.ninja': 系统找不到指定的路径。
subninja ninja/msvc.ninja ^ near here FAILED: build/msvc/_/bee cmd.exe /C cd 3rd/bee.lua && ....\tools\ninja.exe -f build\msvc\msvc-init.ninja ninja: build stopped: subcommand failed.
这个是在WIN10下的结果,也报错,不管是msvc_x64.bat还是msvc_86.bat 另外在win7 32位系统,需要把msvc_x86.bat里的%ProgramFiles(x86)%改成%ProgramFiles%,32位系统没有%ProgramFiles(x86)%文件夹,另外-host_arch=x64也要改成-host_arch=x86,然后的报错就和win10下面的一样了。
呵呵,搞得我又装了win7 x64,又装了win10,以为会正常了,结果还是一样。
我不知道init.lua生成的msvc-init.ninja文件是干什么用的,它的结果是这样:
builddir = build/msvc msvc_deps_prefix = ???: ???????: subninja ninja/msvc.ninja
会不会是这些问号是不对的?
手动用下面的方式去编译,这些问号得到的结果应该是: msvc_deps_prefix = 注意: 包含文件: cl /showIncludes /nologo test.c
难道是中文系统的原因导致这个结果有问题?
或者你用msvc_x86.bat编译一份发给我好吗?
我猜你没有更新submodule
可能吧。如何更新submodule?
git submodule init
git submodule update
总算能编译了。64位系统都能编译过了。32位系统改一下msvc_x86.bat也可以编译了。.
接下来是不是把编译后的文件复制到C:\Users\ ???\.vscode\extensions\actboy168.lua-debug-1.31.5\bin\win ?
请按照readme的步骤来
第3步 clone lua debug 后 第4步 如何Rebuild? 第5步 也不知道
第三步是打开VSCode,不是clone lua debug。 第四第五步都是执行VSCode的task
Executing task: luamake remake <
luamake: cannot open D:\vcProjects\11\lua-debug\main.lua: No such file or directory 终端进程“C:\Windows\System32\cmd.exe /c luamake remake”启动失败(退出代码: 1)。
不好意思,这是哪里的问题,在VSCODE中运行ReBuild任务就显示这样
luamke只会找它所在目录的main.lua,所以你的luamake应该在不正确的目录里
luamake: ...Projects\11\lua-debug\extension\script\frontend\main.lua:3: module ' common.network' not found: no field package.preload['common.network'] no file 'D:\vcProjects\11\lua-debug\extension\script\frontend\lua\common \network.lua' no file 'D:\vcProjects\11\lua-debug\extension\script\frontend\lua\common \network\init.lua' no file 'D:\vcProjects\11\lua-debug\extension\script\frontend\common\network.lua' no file 'D:\vcProjects\11\lua-debug\extension\script\frontend\common\network\init.lua' no file 'D:\vcProjects\11\lua-debug\extension\script\frontend..\share\lua\5.4\common\network.lua' no file 'D:\vcProjects\11\lua-debug\extension\script\frontend..\share\lua\5.4\common\network\init.lua' no file '.\common\network.lua' no file '.\common\network\init.lua' no file 'D:\vcProjects\11\lua-debug\extension\script\frontend\common\network.dll' no file 'D:\vcProjects\11\lua-debug\extension\script\frontend\common.dll' stack traceback: [C]: in function 'require' ...Projects\11\lua-debug\extension\script\frontend\main.lua:3: in main chunk [C]: in ? 终端进程“C:\Windows\System32\cmd.exe /c luamake remake”已终止,退出代码: 1。
main.lua在 extension\script\frontend\ 文件夹,我只好把luamake放到这个文件夹里,但是运行任务却说找不到luamake,我只好把这个文件夹放到PATH里。然后运行任务后就出现上面的提示,我看这些提示中的模块在上一层文件夹的common文件夹里,而main.lua却在frontend文件夹里。这怎么办?把main.lua弄到上层去?
你应该按照readme的步骤做,而不是擅自加一些新的步骤。luamake它原来在哪,那它就应该在那。不需要也不应该改变它的位置。
真是不好意思,你有QQ或微信吗,这里联系起来有点慢。 luamake是之前在luamake项目中编译好的,现在VSCODE打开的是lua-debug吧,这两者是如何关联在一起的?
你可以把luamake加到PATH里
oh,把luamake加到PATH里可以了,这次执行的是luamake文件夹里的main.lua, 不过要把msvc_helper.lua文件里的ProgramFiles(x86)改成ProgramFiles,我觉得可以在msvc_helper.lua对系统做个判断,如果是64位系统,就用ProgramFiles(x86),32位系统就用ProgramFiles,之前的msvc_x86.bat里也可以做个判断,如果有环境变量ProgramFiles(x86)就说明是64位系统。 另外,做完第4步和第5步后,重新运行VSCODE还是不能调试,同样提示无效的句柄。
我没有32位的操作系统做测试,你可以提供PR。
你可以直接运行编译出来的lua-debug.exe,是否会提升无效句柄
lua-debug.exe之前我也试过的,可以运行的,这次编译后的也是可以运行的。
launch.json添加"console": "integratedTerminal"
,看看执行的lua是哪个
Windows PowerShell 版权所有 (C) 2009 Microsoft Corporation。保留所有权利。
PS Z:\Projects\lua> & 'c:/Users/zzz/.vscode/extensions/actboy168.lua-debug-1.31.5/runtime/win64/lua53/lua.exe' '-ldbg' '-e' 'DBG{2904}' 'Z:\Projects\lua/1.lua' 无法执行程序“lua.exe”: 该版本的 %1 与您运行的 Windows 版本不兼容。请查看计算机的系统信息,了解是否需要 x86 (3 2 位)或 x64 (64 位)版本的程序,然后联系软件发布者。 所在位置 行:1 字符: 3
果然如你所见,运行的是64位版本的
增加了 "luaArch": "x86", 可以了
总结:不用自编译,直接 增加 "luaArch": "x86", 可以了
另外我看你那个bee挺不错,有参考手册吗?
目前没有。不过我有计划给给它添加lua doc。
恩,好的,期待。
在WIN7 x64位系统中,按F5能正常调试。 但在WIN7 x86 32位系统里,按F5不能调试,提示句柄无效。