【问题】:
使用vscode配置c/c++环境时,提示无法构建失败。
【解决方案】:
1. 当前结合网上找的资料已经检查过,tasks.json和launch.json文件,并无配置错误。
2. F5调试时,终端输出错误调试信息如下:
启动调试任务时,执行了2条命令。
1)cmd /c chcp 65001>nul (查了下好像是字符乱码相关)
2)D:\Programs\mingw64\bin\gcc.exe -fdiagnostics-color=always -g F:\Data\code\vsc_template\main.c -o F:\Data\code\vsc_template\main.exe (真正的编译脚本)
在终端单独执行2)的脚本,可以在工作区正常生成 main.exe, 此时再按F5调试,可以正常设置断点并进行调试任务。
由此断定,launch.json文件没有问题,问题出在tasks.json中。因为tasks.json任务没有生成 main.exe, 因此luanch.json 报错,找不到main.exe文件。
3. 核查tasks.json配置如下:
根据2中终端中打印的错误信息,因为能正确生成编译脚本,所以可知3 "command" 和 4"args"正确执行,问题出在1"type" 和2"label"上。2"label"仅仅是一个字符标识,只要保证launch.json中和这个字段保持一致即可。因此确认,问题出在1"type"上,cppbuild命令不对。
4. 编译"type"字段,vscode自动提示该字段有3个可选值,如下图:
将"type"值修改为 "shell",如下:
F5再次启动调试,终端调试命令如下:
对比2中终端输出信息,此时只有编译脚本。此时可以正常启动调试信息。
【总结】
1.vscode配置c/c++环境,无法调试时,先检查 tasks.json和launch.json文件配置。
2.注意终端窗口输出的指令信息。
3.本文的问题是因为,tasks.json文件中,启动指令错误导致,将"type"字段的值,从"cppbuild"修改为"shell", 可以正常启动编译调试。