vscode 配置c/c++环境,无法生成 *.exe文件

【问题】:

使用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文件。

  1. 核查tasks.json配置如下:

根据2中终端中打印的错误信息,因为能正确生成编译脚本,所以可知3 "command" 和 4"args"正确执行,问题出在1"type" 和2"label"上。2"label"仅仅是一个字符标识,只要保证launch.json中和这个字段保持一致即可。因此确认,问题出在1"type"上,cppbuild命令不对。

  1. 编译"type"字段,vscode自动提示该字段有3个可选值,如下图:

将"type"值修改为 "shell",如下:

F5再次启动调试,终端调试命令如下:

对比2中终端输出信息,此时只有编译脚本。此时可以正常启动调试信息。

【总结】

1.vscode配置c/c++环境,无法调试时,先检查 tasks.json和launch.json文件配置。

2.注意终端窗口输出的指令信息。

3.本文的问题是因为,tasks.json文件中,启动指令错误导致,将"type"字段的值,从"cppbuild"修改为"shell", 可以正常启动编译调试。